I'm a Sr Dev who mostly has done back-end work but I'm "dangerous enough" in front end frameworks to get things done in my job.
I have another Sr Dev on my team who is ADAMANT on using ul/ol's everywhere. And I mean EVERYWHERE.
Navigation menu items will get done as a list.
Say I have a list of key value pairs or tags describing an item on a page, that's a list. If there are two sections on a page that's also a list. Even forms are built as lists of inputs and buttons. To the point where I'm positive if I told them to recreate the google front page I'm 100% they'd make a ul and a li for the image, another for the box and a separate li for the buttons.
My frustration is that every piece of documentation regarding ordered lists and unordered lists are for literally listings out items as numbered or bulleted lists, not logically grouping things on a page. Also our code is littered with extra css to strip out the bullet points and numbers on a basic li item.
I've worked on several projects and this is the first time I've ever seen lists so overused. Is this normal on some projects? It feels wrong but I don't know the exact terminology to use to explain why, given my inexperience in front end development.
Test in screen readers and see how content is being announced.
Lists have certain semantics which are very useful. Definitely good in navigation (aka nav > ul > li).
Grids are also useful BTW—we don't have specific "grid" tags in HTML, but using ARIA attributes you can set up grids which might map onto div tags or even custom elements.
Personally, I'm much less concerned about ul/li than I am "div tag soup" which is a plague upon modern web development. Use div tags sparingly, and almost always see if you can reach for either (a) a more semantic HTML tag (e.g., key/val pairs should probably be dl/dt/dd tags, not list tags), or (b) custom elements…yes, authoring tags with one or more hyphens which are purely for developer comprehension and hanging CSS off of is perfectly fine—recommended in fact—and in some cases if you need some JS component logic as well, then boom you have web components.
Sections: why not just <section>1...</section><section>2...</section><section>3...</section>
Maybe your coworker possibly suffers from list-itis, after tying too hard to prevent div-itis?
What do you mean about littered with css? Do you have a default reset style, or a simple util class to remove these? Or is your html littered with style="" everywhere?
Have a look at the MDN link about the Nav tag. MDN is probably the best source on html standard, aside from reading the W3C html spec.
There you’ll see that the main example is using an unordered list. There is another example explicitly saying you don’t have to use a list in a nav tag.
I’d say your coworker might know what they are talking about.
This is an old standard, long ago when CSS wasn't a big thing, and even when it was when it was much less featureful, tables where the only way to properly position things. This is no-longer the case and is now bad practice and has been for more than a decade. This is due to defailt styling added to list elements along with a few other issues with speed and consistancy
Don't know them, but this seems an older Dev who learned something one way and is entirely unable to adapt with changing technology. This is a danger, and has been the reason for quite a few major, very expensive, issues at companies I've been contracted at. Sure, using tables and lists is not a big issue, but what else will he do and defend aggressively? I've seen the same with a person arguing SQL injections are fixed because he took out all comment characters before concatenating a string for an SQL query.
There's quite a bit in this project that's very unorthodox mostly because a decision was made early on that most frameworks were too "opinionated", so now we have a mish mash of shit that barely works together and I'm sure that once this app is handed over to a client they will likely not understand it and rewrite it from scratch.
Unless the type of the list number matters (like legal or technical documents where items are referenced by their number/letter), use the CSS list-style-type property instead.