Das hat mich schon eine Weile beschäftigt, und ich frage mich, ob es einen Konsens darüber gibt, wie man das richtig macht. Wie füge ich bei Verwendung einer HTML-Liste semantisch einen Header für die Liste ein?
Eine Option ist folgende:
<h3>Fruits I Like:</h3>
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
aber semantisch ist die <h3>
Überschrift nicht explizit mit dem verknüpft<ul>
Eine andere Option ist folgende:
<ul>
<li><h3>Fruits I Like:</h3></li>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
Dies scheint jedoch etwas schmutzig zu sein, da die Überschrift nicht wirklich zu den Listenelementen gehört.
Diese Option ist vom W3C nicht zulässig:
<ul>
<h3>Fruits I Like:</h3>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
wie <ul>
‚s nur eine oder mehr enthalten <li>
s‘
Die alte "Listenüberschrift" <lh>
ist am sinnvollsten
<ul>
<lh>Fruits I Like:</lh>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
Aber natürlich ist es nicht offiziell Teil von HTML
Ich habe gehört, es schlägt vor, dass wir <label>
wie ein Formular verwenden:
<ul>
<label>Fruits I Like:</label>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
aber das ist ein wenig seltsam und wird sowieso nicht validieren.
Es ist leicht, die semantischen Probleme zu erkennen, wenn ich versuche, meine Listenkopfzeilen zu formatieren. Am Ende muss ich meine <h3>
Tags in die erste einfügen <li>
und sie für die Gestaltung mit etwas wie:
ul li:first-of-type {
list-style: none;
margin-left: -1em;
/*some other header styles*/
}
Horror! Aber zumindest auf diese Weise kann ich die gesamte <ul>
Überschrift und alles steuern, indem ich das ul
Tag gestalte.
Was ist der richtige Weg, um dies zu tun? Irgendwelche Ideen?