Les bonnes pratiques et HTML5 Jean-pierre VINCENT
#fear
Qui ça ? Jean-pierre VINCENT braincracking.org @theystolemynick Je sers le Web et c'est ma joie : houra.fr, Yahoo!, timeofmylife.com Livre « HTML5 » en juillet 2011
HTML5 casse tout Accessibilité
Nouvelle syntaxe
Nouvelles failles de sécurité
Javascript only
Bonnes pratiques ?
Opquast
codage
Et vous ?
Nouveaux éléments header ,  nav  et les autres (de type  display:block )
Problème :
Non stylable sur IE < 9
Nouveaux éléments Solution 1 : HTML5 shiv <script> document.createElement('article') </script>
Nouveaux éléments Solution 1 : HTML5 shiv <script> document.createElement('article') </script> < article  class=&quot;article&quot; role=&quot;main&quot;> <h1>...</h1> ... </ article >
Nouveaux éléments Solution 1 : HTML5 shiv ✗  Dépendance de IE à JavaScript ✓  Sémantique OK ✓  Code normal
Nouveaux éléments Solution 2 : XML namespace <html  xmlns:html5 =&quot;http://www.w3.org/1999/xhtml&quot;> < html5:article  class=&quot;article&quot; role=&quot;main&quot;> <h1>...</h1> ... </ html5:article >
Nouveaux éléments Solution 2 : XML namespace ✓  Pas de dépendance JS ✗  Sémantique KO ✗  Code CSS et HTML modifié
Nouveaux éléments Solution 3 : éléments parents <article> <div class=&quot;article&quot; role=&quot;main&quot;> <h1>...</h1> ... </div> </article>
Nouveaux éléments Solution 3 : éléments parents ✓  Pas de dépendance JS ✓  Sémantique OK ✗  Code CSS et HTML modifié
Nouveaux éléments Conclusion : facilité de codage ? Shim
IE sans JS mais BP de codage ? Éléments parent
Hiérarchie BP#3 : hiérarchie de titres dans la page
Problème : HTML5 a défini un nouvel algorithme
Hiérarchie HTML 4 : <body> <h1> titre page </h1> <div role=main class=article> <h2> titre article </h2> </div>
Hiérarchie HTML 4 : <body> <h1> titre page </h1> <div role=main class=article> <h2> titre article </h2> </div> HTML5 : <body> <h1> titre page </h1> <article role=main class=article> <h1> titre article </h1> </article>
Hiérarchie Très utilisé par les utilisateurs d'AT
Pas changeable selon le doctype
Différent selon le moteur HTML
Hiérarchie Pas de réelle solution Ne pas utiliser de balises de section
Servir un HTML différent selon le navigateur
Ignorer le problème (petites hiérarchies)
Liens d'évitement (BP#132)
Liens d'évitement (BP#132) Théorie : Remplacés par rôles ARIA ( main ,  navigation ,  search )
Rôles ARIA transmis au AT par le navigateur
Traduction automatique d'éléments HTML5 en ARIA
Liens d'évitement (BP#132) Pratique :  Utilisateurs clavier  sans AT
Support actuel restreint (FF4)
Dans la spec, les rôles  main  et  search  sont à définir manuellement
Liens d'évitement (BP#132) Toujours utile

Html5 bonnes-pratiques