Anders är en webbutvecklare och hårdrockare som gillar brädspel, kaffe och öl.

Detta är ett arkiverat inlägg, som importerats hit för referens. Det kan se konstigt ut och innehålla utdaterad information eller inaktuella åsikter.

Brödsmulor - en semantisk mardröm!

De senaste åren har jag lagt mycket energi åt att göra min uppmärkning mer rik på semantik och mening. Något så trivialt som att döpa en klass eller ett ID kan bli en stor sak, då mindre lyckade val kan få delar av ett HTML-dokument att inte vara träffsäker.

Så idag, på jobbet, stötte jag på en värdig utmaning. Till och med standardsadvokater på mästernivå fruktar brödsmulorna.

Brödsmulor används i sagor för att skapa ett spår för protagonisten att följa när denne skall vända om och ta sig tillbaka. I gränssnittsdesign har man tagit efter detta för att skapa en horisontell historik för användarens aktivitet. I webbgränssnitt brukar brödsmulor dock beskriva var man befinner sig på webbplatsen, rent hierarkiskt, snarare än beskriva aktivitet:

madr.se > blog > archive > 2008 > 1 > 6

Brödsmulor är inte mycket för världen, rent visuellt: en eller flera länkar, separerade med ett skiljetecken, och en avslutande rubrik. Att bygga upp något som är semantiskt korrekt och meningsfullt är däremot en mardröm.

  • Varje länk är en nivåer i navigationen. Längst till vänster är toppdomänen eller ett alternativ i huvudnavigationen. Efterföljande länk är alternativ i den tillhörande undermenyn. Nästa länk tillhör i sin tur undermenyns undermeny, et cetera.
  • Skiljetecknet indikerar arv och berättar föräldern och barnen för varje enskild nivå.
  • Längst till höger är aktiv sida, den sidan användaren befinner sig på.

Det mest korrekta sättet att märka upp brödsmulor är detta:

Vid en första anblick ser det inte så farligt ut ur en betraktares öga. Med hjälp av några rader CSS är det enkelt att få den nästlade listan att presenteras i rätt manér.

  1. ul,li {
  2. list-style:none;
  3. display:inline;
  4. margin:0;
  5. padding:0;
  6. }
  7. /* iefix needed */
  8. li li:before {
  9. content:" > ";
  10. }

Alla webbutvecklare med några år i ryggen minns hur det var, eller hemsöks fortfarande av tabellbaserade layouter. Det är en förfärlig röra kod, där innehållet drunknar i strukturen - utan att strukturen nödvändigtvis är relevant för innehållet.

Känner ni igen er?

  1. <ul id="breadcrumbs">
  2. <li>
  3. madr.se
  4. <ul>
  5. <li>
  6. archive
  7. <ul>
  8. <li>
  9. 2008
  10. <ul>
  11. <li>
  12. 1
  13. <ul>
  14. <li>
  15. 6
  16. </li>
  17. </ul>
  18. </li>
  19. </ul>
  20. </li>
  21. </ul>
  22. </li>
  23. </ul>
  24. </li>
  25. </ul>

Det är fullständigt orealistiskt att uppmärka på det viset. Brödsmulor hör därför till de sällsamma fallen där en religiös standardsadvokat måste ge efter för en komprimiss. I mitt fall valde jag att köra det så enkelt jag bara kunde.

  1. <p id="breadcrumbs"> &lt;
  2. madr.se &lt;
  3. archive &lt;
  4. 2008 &lt;
  5. 1 &lt;
  6. 6
  7. </p>

Kontenta: om komplexiteten över bra uppmärkning av brödsmulor skapar frustration - släpp taget. Det är ingen idé, då det är orealistiskt att märka upp brödsmulor korrekt med dagens uppmärkningsalternativ.

Vi får hoppas att HTML5 erbjuder något smidigare.

Vidare läsning