Gå til innhold

Diskusjon om semantikk


Anbefalte innlegg

Bare for å få sagt det, dette er ikke for å lage en konkurranse mot webkaféen, eller et forsøk på å starte en ny «Siste ordet». Grunnen til at jeg ikke tar det opp i Webkaféen, men lager en ny tråd, er fordi det går så fort off topic i webkaféen, og jeg klarer ikke holde styr på nye meldinger der.

 

dette skal være en tråd om semantikk, og bare semantikk...

 

 

Til å begynne med, har jeg et par spørsmål:

  • Er det noen her som benytter seg av object-elementet istedenfor img?
  • Når man lager et forum, en nyhetsside eller andre oversikter over emner og artikler o.l., er det ikke da mest naturlig å legge det i en liste for deretter å legge div-elementer inni li-elementene og eventuelt headers? Jeg ser dette blir spesielt lite gjennomført, til og med på de mer seriøse sidene, som alistapart. Når du lager en liste, lager du tross alt en semantisk vist sammenheng/tilhørighet elementene imellom. Det gjør du ikke ved bare å ta div etter div, header etter header.
  • Greit, noen boikotter XHTML fordi så mange jyplinger uten skills bruker det, men er det noen grunn til ikke å benytte seg av XHTML-markup?

Det var visst bare to spørsmål. Nei, det ble tre.

Lenke til kommentar
Videoannonse
Annonse

Er det noen her som benytter seg av object-elementet istedenfor img?

Kor vidt det har med semantikk å gjere, er eg ikkje sikker på.

Det har sjølvsagt med bruken av elementer som sørger for best mogleg tilgjengelegheit å gjere, men OBJECT er eigentleg meir retta mot andre former for data som vert satt inn i eit HTML-dokument.

 

Men uansett - om eg bruker bilete i ein artikkel eller liknande, har eg eit script som sjekker om nettlesaren støttar application/xhtml+xml (det kan vere fint å sjekke etter dette, sjølv om du ikkje sender dokumentet som det, for da finn du ut akkurat kor god den besøkandes nettlesar er.), og viss den ikkje gjer det, då endrast koda litt:

 

Støttande nettlesarar:

<object data="http://example.org/paul_with_glasses" type="image/png">
<p>Dette er eit bilete av Paul Sherman med briller! Biletet var tatt den 24. juli 2004 i Roma</p>
<p>Fotografen vart slått ned av brutale fans seinare. Pga. dette gjekk fotografen til saksmål, og fekk 1,4 mill. NOK i erstatning.</p>
</object>

 

Ikkje-støttande nettlesarar:

<img src="http://example.org/paul_with_glasses" type="image/png" alt="Paul Sherman med briller!" longdesc="#ins_desc_3">

 

 

Listeorganisering

Eg bruker vanlegvis ikkje å ha så mykje tekst i ordna og uordna lister, då brukar eg heller definisjonslister.

Viss ein ser på Wordpress sin standardtemplate, ser ein at sidebaren er ordna som ei liste med overskrifter. Eg hugsar ikkje om DIV-elementet er så hyppig brukt, men eg ser eigentleg ikkje nødvendigheita med å bruke eit element som har null semantisk betydning.

 

 

Grunn til å ikkje bruke XHTML

Tja, er det ein grunn til det?

Viss du ser på fordelane for store, kommersielle sider, så har HTML eit stort overtak mtp. bandwidth. I HTML treng ein ikkje å avslutte element som ikkje har avslutningstagger, og ein kan droppe HTML, HEAD og BODY slutt- og starttagg.

 

Det andre er at ein må til med innholdsforhandling for å kunne få god markup.

Dette medfører mykje stress for lite vinst, derfor ser iallfall eg det som unødvendig. XHTML er ugyldig XHTML, så derfor må alle XHTML-spesifikke attributter og quirks fjernast.

Dvs: Bruker du MathML på sida di, må du servere statiske bilete i staden for MathML-markup til nettlesarar som ikkje støttar det. Den lettaste (og einaste ideelle?) måten å gjere dette på, er å bruke output buffering, og sjekke mot HTTP-ACCEPT-strengen til nettlesaren. Sjå for deg ei startside som har 80 eksempel på MathML, som så må konverterast ved lasting til PNG-bilete, og som samtidig må ha ein LONGDESC eller ein anna fallback-teknikk til dei nettlesarane som verken støttar MathML eller bilete.

Det er mykje pes.

Og ein kan heller ikkje berre ignorere nettlesarar som ikkje støttar desse teknologiane, for da bryt ein med W3Cs Universal Accessibility Guidelines.

 

Derfor: Eg vil ikkje ta i bruk teknologier som MathML o.l. på høgt nivå før det er nokon lunde implementert i dagens nettlesarar.

 

Men dette er sjølvsagt berre mine meiningar. MathML og liknande teknologiar er der for ein grunn, bruk dei viss du føler at du må.

Lenke til kommentar

Fint skrevet, SirIce :)

 

Fyller på med litt semantikk jeg da, som jeg henter fra en artikkel jeg skrev i bloggen min..

 

Til stadighet kan man se at folk ikke vet hvordan man skal lage korrekte overskrifter. Man kan selvsagt lage overskrifter uten bruk av disse elementene, men det blir ikke riktig hvis man skal tenke semantisk.

 

Metode A; meningsfull?

<span class="overskrift">Dette er en overskrift</span>

 

Dette er en mulighet jeg har sett blitt brukt rundt om kring. Med CSS-styling kan man uten store problemer få dette til å se riktig så bra ut. MEN, det gir ingen mening når det gjelder kodens struktur. Man skal bruke HTML-tagger til det de er laget for. I dette tilfellet er det derfor riktig å bruke <h*> elementeter.

 

Metode B: korrekt bruk

<h1>Dette er en overskrift</h1>

 

Dette eksemplet er semantisk riktig! Styler man dette i CSS, blir det perfekt! Her bruker man altså h1-taggen akkurat slik den skal brukes. Dette gjelder selvsagt for alle <h*>, ikke bare <h1>-elementet!

Lenke til kommentar

OBJEKT:

Var vel faktisk snakk om å fjærne img tag'n i xhtml2 var det ikke?

Synes ikke det er så ille som man skal ha det til,

men nå vet jeg ikke helt hvordan object oppfører mpt på hvordan img oppfører seg.

men kan man ikke bare sette img tag'n inni objekt?

Da er alle fornøyde ;)

 

Liste greia tok jeg ikke helt gitt ;)

 

XHTML gidder jeg ikke diskutere lenger, død som en sild er det. Litt trist egentlig.

Lenke til kommentar

XHTML er langt fra død, men det er vel og greit.

Liste greia tok jeg ikke helt gitt ;)

Liste-greien hadde nok et poeng. Når du lager en informasjon om en rekke artikler du har på en side, så hører de «ingressene» sammen på samme måte som elementer i en liste henger sammen, og det er derfor naturlig å bruke lister til det formålet.

 

Et sted det kunne vært lister er for eksempel på alistaparts oversikt over artikler.

 

SirIce: Definisjonslister? Det er jo til bruk for definisjoner, det ville ikke passet i mitt eksempel. (Ps: Legg merke til misbrukingen av definisjonslister på wikipedia)

 

SirIce2: Angående semantikk og bruk av object-element fremfor img-element, er det høyst aktuelt å diskutere. Object-elementet tar jo seg av akkurat det du sier scriptet ditt gjør. Med Object-elementet kan du legge inn flere alternativer, video, bilder og tekst. Hvis en nettleser ikke klarer å vise videoen, viser den bildet. Hvis den ikke klarer å vise video eller bilde, viser den teksten. Det er hele poenget. Jeg mener alle nettlesere støtter den funksjonen. Det bør de ihvertfall. Gjør IE?

W3C om object-elementet.

Lenke til kommentar
Metode B: korrekt bruk

<h1>Dette er en overskrift</h1>

Det som også er viktig å få med er at endel, som meg selv, bruker overskrifter feil. H1 burde ikke være feks "Min hjemmeside" men "Min hjemmeside -> Linker" feks. Må skjerpe meg litt på sånt.

Lenke til kommentar
Metode B: korrekt bruk

<h1>Dette er en overskrift</h1>

Det som også er viktig å få med er at endel, som meg selv, bruker overskrifter feil. H1 burde ikke være feks "Min hjemmeside" men "Min hjemmeside -> Linker" feks. Må skjerpe meg litt på sånt.

Tror ikke jeg var helt med på den gitt.... :hmm:

Lenke til kommentar
XHTML er langt fra død, men det er vel og greit.
Liste greia tok jeg ikke helt gitt ;)

Liste-greien hadde nok et poeng. Når du lager en informasjon om en rekke artikler du har på en side, så hører de «ingressene» sammen på samme måte som elementer i en liste henger sammen, og det er derfor naturlig å bruke lister til det formålet.

 

Et sted det kunne vært lister er for eksempel på alistaparts oversikt over artikler.

 

SirIce: Definisjonslister? Det er jo til bruk for definisjoner, det ville ikke passet i mitt eksempel. (Ps: Legg merke til misbrukingen av definisjonslister på wikipedia)

 

Definisjonslister er nok å foretrekke i stedet for lister i dette tilfellet. De har en veldig bred betydning, og det blir oppfordret til å bruke dem til langt mer enn bare definisjoner.

Uten at jeg har sett på koden til wikipedia har jeg egentlig vondt for å tro at de har missbrukt definisjonsliter siden disse kan dekke over så veldig mye.

 

Når det gjelder <img> tagen kontra <object> er det helt klart at <img> aldri hadde blitt brukt dersom w3c hadde fått en standard før Netscape(?) la til støtte for bilder med <img>. <object>-tagen har jo den fordelen at alle nettlesere som ikke støtter den bare ignorerer den og ser på neste element innenfor. Alt-teksten vises jo bare i de nettleserne som har støtte for img. Dermed vil den ikke være bakoverkompatibel med nettlesere før img. Dette ser vi jo ikke på som et problem i dag siden alle nettlesere støtter img, men det ville jo vært enklere for tekst-nettlesrne dersom de bare kunne ignorert denne tagen som tilfellet er med object. Som det vel alderede er nevnt her er img-tagen kuttet ut i xhtml2.

 

Når det gjelder xhtml kan jeg i dag egentlig ikke se noen grunner for å bruke det. Mathml kunne vært en grunn, men pga dårlig støtte i nettlesere er det vel i realiteten veldig lite bruk for det i dag :(

I tillegg er det dårlig støtte for xhtml i de største nettleserne. IE har null støtte for xhtml, og Firefox har ganske dårlig støtte. Opera er jeg ikke helt sikker på, men de har muligens ganske god?

Når(/hvis(?)) xhtml2 blir støttet i de største nettleserne er det derimot mange grunner for å gå over til xhtml, men det er nok enda lenge til, med mindre MS skulle hoste opp støtte i IE7 (lov å håpe :roll: )

Det at xml-parsere er veldig vanlige i disse xml-tider kan kanskje også i enkelte tilfeller være nyttig, men hvor mange er det egentlig som har nytte av å rote i statiske xhtml-sider med en xml-parser? Dessuten kan du jo bruke en sgml-parser på gyldig html også...

Båndbredde kan jo også ha litt å si, men at det har noen stor betydning vil jeg ikke akkurat påstå.

Lenke til kommentar
ein kan droppe HTML, HEAD og BODY slutt- og starttagg.

Kan man gjøre det?

Så ann von noe hadde gjort det, men trengs det no spess docktype for det?

 

Blir det ikke mer slit for nettleseren? Og større sjans for feil?

orsus: Det er heilt lovleg i HTML 4.01. Dei manglande start- og sluttaggane til elementa vert lagt til i DOM-transformasjonen.

 

drange_net: IE støttar dessverre OBJECT heller dårleg. http://code.jenseng.com/object/objectifier.html

Lenke til kommentar

 

Når det gjelder <img> tagen kontra <object> er det helt klart at <img> aldri hadde blitt brukt dersom w3c hadde fått en standard før Netscape(?) la til støtte for bilder med <img>. <object>-tagen har jo den fordelen at alle nettlesere som ikke støtter den bare ignorerer den og ser på neste element innenfor. Alt-teksten vises jo bare i de nettleserne som har støtte for img. Dermed vil den ikke være bakoverkompatibel med nettlesere før img. Dette ser vi jo ikke på som et problem i dag siden alle nettlesere støtter img, men det ville jo vært enklere for tekst-nettlesrne dersom de bare kunne ignorert denne tagen som tilfellet er med object. Som det vel alderede er nevnt her er img-tagen kuttet ut i xhtml2.

 

I den siste working draft av XHTML2 er <img> tilbake. Når det gjelder bruk av <object> så er jeg nok ganske lat. Siden alle nettlesere støtter <img> har jeg ikke tenkt spsielt mye over å bruke <object> til bilder. Problemet er jo for eksempel hvis du har et bilde i en object tagg og det samme i en <img> for bakoverkompatibelhet, så vil de nettleserne som støtterbidler i <object> vise bildet to ganger. Dermed blir man henvist til javascript eller serversideløsninger, noe jeg ikke har rotet meg borti ennå.

 

Liste-greien hadde nok et poeng. Når du lager en informasjon om en rekke artikler du har på en side, så hører de «ingressene» sammen på samme måte som elementer i en liste henger sammen, og det er derfor naturlig å bruke lister til det formålet.

Denne skjønenr jeg ikke helt. La oss si at du putter alle ingressene inn i ei liste. Da må jo alle overskriftene, for eksempel, puttes innenfor denne nye listen, eller denne listen må puttes inni en overskriftsliste, osv.

Enten det, eller så må du ha noen sinnsyke CSS-regler. Er ikke poenget med semantikk tilgjengelig, forståelig kode?

Lenke til kommentar
La oss si at du putter alle ingressene inn i ei liste. Da må jo alle overskriftene, for eksempel, puttes innenfor denne nye listen, eller denne listen må puttes inni en overskriftsliste, osv.

Enten det, eller så må du ha noen sinnsyke CSS-regler. Er ikke poenget med semantikk tilgjengelig, forståelig kode?

Ikke mer menneskelig lesbar kode, hvis det var det du mente.

 

Poenget med semantikk er å strukturere innholdet på den måten det hører sammen. I en liste hører flere objekter til som har noe felles, være seg en liste over linker, en liste over tråder i et forum, liste over dagens nyheter m.m.

Lenke til kommentar

er det samantisk riktig å bruke <img> til et bilde i header, når bildet bare er av en person?

 

sitter å holder på med en side som skal ha forskjellig bilde på hver del av siden, og det er så mye enklere å endre filnavnet til bildet i hver html-fil.

Endret av N*
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...