The HTML5 specification define ul
so (translation free):
The ul
element represents a list of unordered items; that is, a list whose meaning does not change if the order of the items that compose it is changed.
If you want to follow exactly what the specification says, it may be the case to use an ordered list, since your content looks like a feed message, which would lose its meaning if it is not in order chronological (correct me if I misunderstood your example).
Semantically speaking, any list I have is able to use uls? Even though there are large and complex content within this list?
It is recommended that any list be represented as a list, that is, ul
, ol
or dl
(the latter is a little different, it can be considered a list of key / value pairs). However ...
Warning: opinion content below!
Any discussion of semantics always involves a considerable amount of opinion. I've seen people argue that a list of links within a
nav
does not have to be represented as a list, since
nav
would already mean a "list of navigation items"; there are people who defend the opposite.
One of the big arguments in favor of "semantic HTML" is that it would be a step towards the semantic web. And the semantic web is one in which machines can exchange information about the meaning of the content they access or store. Well, and what would be gained in knowing that such content is an unordered list? This does not say anything about the content, and very little about its structure.
Therefore, always look at the discussions about semantics with one foot behind. There are no absolute truths; no use wishing to follow everything they say, or fatally you fall into contradiction. It is interesting that its content is well structured and that this structure makes sense when read by humans. In my opinion this is the most important at the moment in 2014. I would rather represent your messages as items in a list, but this is not so other than having div
s with class mensagem
inside another div
with class mensagens
. If the list and its items do not lead to any class, divs with classes even make more sense.