[html5] the case for a <dli> element

Brian Tremblay webmaster at tsmchughs.com
Sun Dec 30 08:55:36 PST 2012

I'm using <dl> markup for a restaurant menu, and have added product 
microdata markup from schema.org. Because items in a <dl> are defined 
implicitly -- <dt> element(s) followed by <dd> element(s) --  there's no 
easy way to scope them individually. What I'm left doing is adding 2 id 
attributes for each menu item, and using itemref:


If we had a <dli> element, to scope each item in a description list, the 
markup needed to add microdata (or microformats) would be much simpler. 
Here's an example:


Note that these are test examples derived from a real world example. 
Here's the dessert menu for the restaurant:


Because the list is short, I've added the necessary id and itemref 
attributes. But I have not for longer menus, e.g.:


The authoring costs -- maintaining 2 unique ids for each menu item -- 
are too high for anything more than a few items. Using <table> markup 
for a menu is much easier:


Therefore, I think we need a <dli> element. This has come up in the 
past. If I understand correctly, the editor has declined, saying that 
the need for <dli> is only to make styling easier, so the problem should 
be solved in css. But I think the problem here is not styling, it's 
creating natural, discrete items in a description list, which might be 
used for styling, or for microdata, or perhaps for other reasons which I 
haven't thought of. Without <dli>, use of <dl> becomes much harder to 
use even though it may be the best markup choice.

Brian Tremblay

More information about the Help mailing list