I know by defining elements for list items and links below are not only more pure oocss because you are not relying on elements, but it is also faster to read by selector engines. I would like to put out a github of a framework I am working on, but want to know how much of a pain it would be for people to define things this way.
I’m sorry for sounding harsh, but you do not know what you are talking about. It is good semantics based on the B.E.M naming convention and name-based scoping rules. “Elements” are not scoped to a tag but a Block in B.E.M. Semantics do not live inside the tags alone.
Like I mentioned, selector engines read selectors from right to left. It would have to evaluate all the li and a tags. The class name soup you see on the li’s is how you define an element of the nav block. It is tag independent. This means the same code could be written in an ol, ul, dl, div, or any other block tag.
The only disadvantage I see is having developers painfully define the elements of the nav objects block. For me its worth the payoff to keep it more pure.