a.css

esbudellant estàndards


mètode abbr-cadabra

26/07/06

El mètode abbr-cadabra intenta arreglar el dèficit d'implementació que té l'Internet Explorer amb l'element abbr.

La idea és declarar l'element abbr deixant explícit el namespace al qual pertany, és a dir:


<html:abbr title="etcetera">etc.</html:abbr>

I declarar el prefix al namespace de l'XHTML:


<html xmlns:html="http://www.w3.org/1999/xhtml">

Tot i no ser una solució definitiva —ja que des del meu punt de vista es trepitja la línia de l'incorrecte— és una idea interessant.

Comentaris

  1. Comentat per suy el 26/07/06

    El codi és incorrecte, perquè no especifica a quin espai de noms estan els elements sense prefixe (és a dir, tots tret de l'abbr.

    A més, falla la validació:

    
    $ xmllint --noout --valid abbr-cadabra.html
    abbr-cadabra.html:14: element html: validity error : No declaration for attribute xmlns:html of element html
                                                   ^
    abbr-cadabra.html:62: element body: validity error : Element body content does not follow the DTD, expecting (h1 | h2 | h3 | h4 | h5 | h6 | ul | ol | dl | p | div | pre | blockquote | address | hr | table | form | fieldset | ins | del | script | noscript)*, got (p p p CDATA ul p p p p p p p p )
    
           ^
    

    (El fragment anterior està copiat d'una consola, i deuria veure's com texte preformatejat, pero suposo que es trencará la presentació.)

  2. Comentat per suy el 26/07/06

    Perdó. Se m'ha oblidat escapar els major i menor que. Ara espero que es vegi millor, però sense previsualitzar...

    $ xmllint --noout --valid abbr-cadabra.html
    abbr-cadabra.html:14: element html: validity error : No declaration for attribute xmlns:html of element html
    <html xmlns:html="http://www.w3.org/1999/xhtml">
    
    abbr-cadabra.html:62: element body: validity error : Element body content does not follow the DTD, expecting (h1 | h2 | h3 | h4 | h5 | h6 | ul | ol | dl | p | div | pre | blockquote | address | hr | table | form | fieldset | ins | del | script | noscript)*, got (p p p CDATA ul p p p p p p p p )
    </body>

    PD: I per cert, en Konqueror 3.5.3 no funciona.

  3. Comentat per are el 26/07/06

    Sí, no s'ha definit cap namespace pels elements sense prefix. Podries fer quelcom poc procedent com: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">

    Sobre els errors de validació, tots els que apareixen com a mínim al del W3C són mancances del pròpi validor a l'hora de tractar-se amb espais de noms. He fet proves amb SVG i surten els mateixos.

    Això fa que no em mereix cap confiança el resultat d'aquesta eina en aquest cas.

  4. Comentat per are el 26/07/06

    Interessant veure l'aclaració d'en Dean Edwards sobre la validació del codi.

    Some pages on this site will not pass the W3C MarkUp Validator because they declare an XML Namespace. The W3C validator uses a document’s DTD to validate against. However, DTDs are not aware of namespaces. They look only at the QName. Thus namespaces have no effect with respect to DTD-based validation.

    Although they may fail the W3C validator, these pages are still valid XHTML.

  5. Comentat per ABBR CADABRA » Pinceladas da Web el 27/07/06

    [...] Uma maneira não muito interessante (válida), de se fazer a tag <abbr> funcionar no IE. [...]

  6. Comentat per suy el 27/07/06

    Els errors de validació que he escrit abans, no són amb el validador del W3C, si no amb l'eina xmllint, que forma part de libxml2 (és molt típic en distribucions de linux, perquè la fan servir GNOME i KDE). Aquest és un validador de plena confiança, i l'he fet servir amb un arxiu descarregat localment (tot i que ho pot fer remotament també), o sigui que l'excusa que dona inicialment sobre que far servir text/html, tampoc serveix, IMHO. :)

  7. Comentat per are el 27/07/06

    Em miraré el validador perquè no el conec però, veient que diu Element body content does not follow the DTD sembla indicar que està contrastant amb la DTD sense extendre'l amb el namespace.

Afegir un comentari


© Arnau Siches. a.css està sota Llicència Creative Commons.