Webboken

Den obskyra delmängden

Eller, ”Dom som försvann

HTML skapades från början med syftet att publicera vetenskapliga och tekniska dokument; man inkluderade därför en mängd element som underlättade detta. Ganska många av dessa element har hängt med, och vi känner att du som läsare bör veta att åtminstone några av dessa existerar.

Språk

Ett attribut som är bra att känna till är lang. Det används för att tala om för webbläsaren vilket innehållet i elementet är skrivet på. När vi säger ”språk” menar vi inte HTML eller XHTML denna gång, utan ”riktiga” språk. Svenska och engelska du vet?

Detta är extra viktigt för till exempel sökmotorer då de oftast vill sortera in sina indxerade sidor efter språk, så att sökmotorns användare sedan kan filtrera resultaten efter språk. Hur många sökmotorer som egentligen använder lang-attributet har vi tyvärr ingen säker information om. (Men det är ett bra exempel på att det man gör är till nytta för någon, och så låter det som att vi vet vad vi pratar om också!)

I HTML används endast attributet lang, men i XHTML använder man dess XML-motsvarighet, xml:lang. Oftast använder man xml:lang och lägger till lang för bakåtkompatibilitet med HTML. Men tänk på att man i XHTML 1.1 inte får använda lang, då den helt enkelt inte finns med i det språket. (XHTML 1.1 är inte bakåtkompatibelt med HTML.)

För att webbläsaren, sökmotorn eller vem det nu är som besöker sidan ska ha någon nytta av värdet på lang måste det finnas ett standardiserat sätt att ange språk på. Som tur är finns det ett sådant. Eller, så enkelt är det kanske inte. Först kontrollerar vi vad HTML-specifikationen har att säga om saken. Vi ser att den menar att vi ska följa RFC1766 när vi specificerar språk. RFC1766 i sin tur säger sammanfattat att man ska använda en ISO639-förkortning, och en frivillig landskod från ISO3166. Du har säkert hört snacket på stan, det nya standarden för hur man specificerar språk har just kommit sägs det. De pratar naturligtvis om IANA Language Subtag Registry. Innan IANALSR (Ja, det var en egen förkortning) så var det trassel med olika vilka ISO-koder man skulle använda och annat spännande. Nu är dessa problem borta i och med IANALSR; man väljer helt enkelt en lämplig språkkod från IANALSR. Om du till exempel skriver din webbplats på svenska blir det lang="sv", om du skriver den på engelska blir det lang="en", och så vidare. Det var väl inte så svårt?

Man kan om man vill, och har en bra anledning till det, specificera andra språkrelaterade koder i lang. Men man ska som sagt ha en väldigt bra anledning. Attributet går för övrigt att använda på alla element, men man bör definitivt använda det på åtminstone html-elementet, för att definiera det övergripande språket. Man kan sedan specificera språket på specifika element om dessa avviker från resten av dokumentet.

Förkortningar

Ibland dyker det upp tillfällen då man vill använda olika förkortningar, och dessa bör man förklara dem när de dyker upp första gången. Detta gör man med elementet abbr. Exempel:

<p>Med hjälp av <abbr title="WINE is Not An Emulator">WINE</abbr> kan man köra Windows-program i en Linux-miljö.</p>

Som du ser används attributet title för att infoga en förklaring till förkortningen. Man kan även, om man har förkortningar av ett annat språk, använda attributet lang för att specifiera detta.

Som förkortningar gäller både oläsbara förkortningar som t.ex. OMGWTFBBQ och förkortningar man läser ut, t.ex. BRIS. Förkortningar som är en del av språket, som t.ex. svenskans osv. eller etc. behöver inte märkas med abbr då både mänskliga och mekaniska läsare bör känna till dem.

Värt att veta är att i HTML 4.01 (och äldre versioner, samt XHTML) finns även elementet acronym, som var tänkt att användas för förkortningar som kunde läsas ut, t.ex. BRIS och SNES. Detta element togs bort i HTML 5 eftersom det ansågs vara överflödigt.

Programkod

Det finns tre viktiga element när man vill presentera kod; code, samp, kbd och var. Det första – code – används för att märka upp kod. Oftast används code inuti textstycken, men vill man ha stora block med kod bör man fortfarande använda code (mer om detta senare i kapitlet). Betrakta följande exempel:

<p>För att sätta textstorleken till tolv punkter skulle man kunna använda <code>font-size: 12pt;</code>.</p>

Elementet samp ska användas för att märka upp (exempel)utdata från ett program:

<p>När du kör programmet <kbd>date</kbd> i din terminal kommer det att skriva ut dagens datum: <samp>Lör  1 Aug 2009 20:43:25 CEST</samp></p>

Ovan ser du även ett exempel på hur man använder kbd – med det elementet märker man sådant som användaren ska skriva, i t.ex. en terminal.

Det sista, var, används för att märka upp text som användaren ska ersätta. Detta används oftast tillsammans med kbd eller code, men kan givetvis passa i andra sammanhang också. Exempel:

<p>För att ta bort en tabell helt från din <abbr title="Structured Query Language">SQL</abbr>-server använder du frågan <kbd>DROP TABLE <var>tabellnamn</var>;</kbd>, där du ersätter <var>tabellnamn</var> med namnet på den tabell du vill ta bort.</p>

Citering

Ofta vill man kanske referera till något dokument man själv inte har skrivit. Ett bra sätt att göra detta är genom att citera, vilket man i HTML gör med elementen q och blockquote. Den enda skillnaden mellan dessa element är att q ska användas i textstycken medans blockquote används när man vill citera ett helt stycke:

<p>Stalin hade en mycket speciell människosyn. Han ansåg sig till exempel ha en lösning på alla problem: döden. <q lang="en">Death solves all problems - no man, no problem</q> lär han ha sagt.</p>
<p>Nedan följer ett citat av John F. Kennedy:</p>
<blockquote><p>The Chinese use two brush strokes to write the word 'crisis.' One brush stroke stands for danger; the other for opportunity. In a crisis, be aware of the danger - but recognize the opportunity.</p></blockquote>

Källor med cite

Elementet (och attributet) cite används för att ange källan till de citat man använder, eller rent allmänt för källhänvisningar. Till exempel skulle man kunna använda cite-attributet på sitt blockquote-element (värdet måste vara en URL):

<blockquote cite="http://www.whatwg.org/specs/web-apps/current-work/#attr-blockquote-cite"><p>If the cite attribute is present, it must be a valid URL. To obtain the corresponding citation link, the value of the attribute must be resolved relative to the element. User agents should allow users to follow such citation links.</p></blockquote>

Använder man å andra sidan elementet cite behöver man ingen URL. Det ska dock framgå tydligt vad man refererar till, oavsett om det är ett namn eller en källa man redovisar senare i dokumentet:

<p>Mauritius använder modern teknik, vilket till stor del görs möjligt av att landet har en stor ekonomisk frihet, större än Sverige (<cite>The Heritage Foundation, 2008</cite>). Ekonomisk frihet är ett mått på hur fri en individ är när det gäller att arbeta, investera och så vidare.</p>

Korrigering

Ibland händer det att man måste ändra på ett dokument efter att det publicerats; och för detta finns elementen ins och del. Dessa används för att markera information som kommit fram eller som visat sig vara inkorrekt, respektive:

<p>En seriekrock inträffade idag klockan tretton på E6:an, och fyra personer uppges ha skadats. <ins>Ingen fick livshotande skador.</ins> <del>Det råder begränsad framkomlighet i norrgående riktning.</del></p>

En seriekrock inträffade idag klockan tretton på E6:an, och fyra personer uppges ha skadats. Ingen fick livshotande skador. Det råder begränsad framkomlighet i norrgående riktning.

Till dessa element kan man använda attributen cite och datetime. Precis som för citering anger cite källan till den nya informationen. Vill man specificera en tidpunkt då informationen förändrades använder man datetime, som ska innehålla ett datum av det formatet som RFC3339 anger, dvs yyyy-mm-ddThh:mm:ss±hh:mm.

Metadata – ”data om data”

Du stötte på elementet meta tidigare i kapitlet om teckenkodning. Detta element är gjort för att innehålla information om ditt dokument, till exempel teckenkodning, men även nyckelord, författare och liknande:

<head>
	<meta name="keywords" content="badbollar, megafon, sol">
	<meta name="author" content="E. N. Författare">
	<meta name="description" content="En historia om min vallfärd till stranden där jag såg en underlig megafon">
	<meta name="copyright" content="Copyright © 2007 E. N. Författare">
</head>

Tyvärr ignorerar många sökmotorer denna information eftersom den är så lätt att missleda med. meta måste placeras i head-elementet.

Förformaterad text

Ibland vill man kanske visa en ASCII-figur eller inkludera ett stort block med kod. Då använder man elementet pre (och code nästlat om man presenterar kod). Detta element gör att texten visas exakt så som den står i källkoden – med alla radbrytningar, tabbar och mellanslag. Man skulle till exempel kunna ha följande figur:

+--------+     +--------+
| Ruta A | ==> | Ruta B |
+--------+     +--------+

Har man denna figur i ett pre-element kommer den att visas som ovan, och man ser tydligt vad du vill visa. Använder man istället ett vanligt p-element blir det inte lika bra:

+--------+ +--------+ | Ruta A | ==> | Ruta B | +--------+ +--------+

Andra trevliga element

För att märka upp kontaktinformation används elementet address:

<address>E. N. Författare<br>
Generella gatan 73<br>
100 10 NÅGONSTANS<br>
<br>
e.n.forfattare@institution.se</address>
E. N. Författare
Generella gatan 73
100 10 NÅGONSTANS

e.n.forfattare@institution.se

Vill man definiera ord kan man använda elementet dfn:

<p><dfn>global maximipunkt</dfn> är den punkt där en funktion antar sitt absolut största värde</p>

Det finns även två lite mer sällan använda element, sup och sub, som upphöjer eller nedsänker text. Av dessa är sup den mest vettiga, eftersom man med den kan skapa fotnoter:

<p>Det finns många olika webbläsare<sup>[<a href="#fn-1">1</a>]</sup>, men jag tycker att Opera är bäst.</p>
...
<ol id="footnotes">
    <li id="fn-1">Till exempel Internet Explorer, Firefox och Safari</p>
</ol>

Det finns många olika webbläsare[1], men jag tycker att Opera är bäst.

...
  1. Till exempel Internet Explorer, Firefox och Safari

Utroduktion