SlideShare une entreprise Scribd logo
1  sur  66
Accesibilidad práctica
con HTML5 + CSS3 + WAI-ARIA
Camilo Kawerin y Manuel Razzari
@camilokawerin @mrazzari
SUMARIO
1.Introducción: accesibilidad todos los días
2.HTML5: etiquetas, reglas, atributos
3. SVG y canvas: estado actual
4. CSS3: maquetado sin imágenes
5. WAI-ARIA: arreglos sencillos
6. Herramientas
ACCESIBILIDAD COTIDIANA
Olvidarse de A, AA, AAA
Bajar al validador del pedestal
 Es una herramienta más
 Valida errores de código
No inventar soluciones “creativas”
HTML5
CAMBIOS EN HTML5
Nuevas reglas
 Sintaxis flexible
 Enlaces “block-level”
Nuevas etiquetas
 Marcado más semántico
Nuevos atributos
 Formularios
 Dataset API
SINTAXIS EN HTML5
No se consideran errores:
   – Etiquetas en MAYÚSCULAS
   – Atributos sin comillas
   – Falta de etiqueta HTML, HEAD o BODY
   – Falta de cierre de etiquetas P, LI, HEAD
   – Falta de cierre de elementos “standalone”
SINTAXIS EN HTML5
Etiquetas mal anidadas
<strong><em>Mal ejemplo</strong></em>

Atributos repetidos
<img alt="" src="" alt="">

IDs repetidos
<input id="field" name="name"
 placeholder="Ej: Camilo">
<input id="field" name="location"
 placeholder="Ej: Corrientes">
ENLACES “INLINE-LEVEL”
<div class="story">
  <h3><a href="ux2012.html">
    UX2012 es el evento del año
  </a></h3>
  <p><a href="ux2012.html">
     <img src="ux2012.jpg" alt="artículo
       completo" />Diseñadores y
       programadores de todo el mundo
       colmaron las salas del CCGSM.</a></p>
  <p><a href="ux2012.html">Read more</a></p>
</div>
                            Enlaces redundantes
                     Texto del enlace no es único
ENLACES “BLOCK-LEVEL”
<article>
  <a href="ux2012.html">
    <h3>UX2012 es el evento del año</h3>
    <p><img src="ux2012.jpg" alt="multitud
sedienta de saber">Diseñadores y
programadores de todo el mundo colmaron las
salas del CCGSM.</p>
    <p>Read more</p>
  </a>
</article>
                         Texto del enlace único
              Agregamos información en el ALT
ENLACES “BLOCK-LEVEL”
<header>
  <a href="/">
    <img src="logo.png" alt="mi bonito
logo">
    <h1>Mi sitio</h1>
    <p>Toda la información que buscás</p>
  </a>
</header>
SEMÁNTICA EN HTML5

<div class="picture">
  <img src="ux2010.jpg" alt="Una multitud
     llenó las salas del CCGSM">
  <p>Una multitud llenó las salas
     del CCGSM</p>
</div>
                      Descripción redundante
SEMÁNTICA EN HTML5
Cómo lo resolvemos
<figure>
  <img src="ux2010.jpg">
  <figcaption>Una multitud llenó
    las salas del CCGSM</figcaption>
</figure>
O mejor aún
<figure role="img" aria-labelledby="lidl">
  <img src="ux2010.jpg">
  <figcaption id="lidl">Una multitud llenó
    las salas del CCGSM</figcaption>
</figure>
FORMULARIOS
Atributo PLACEHOLDER
Validación en el cliente
Tipo de campo de acuerdo al tipo de dato
Compatibilidad hacia atrás y “polyfills”
ATRIBUTO PLACEHOLDER
Usando el atributo VALUE
<label for="field">Nombre</label>
<input id="field" name="name" value="Ej:
 Fulano">
                                Dificulta la validación
                                Agrega suciedad al autocomplete

Usando el atributo PLACEHOLDER
<label for="field">Nombre</label>
<input id="field" name="name" value=""
 placeholder="Ej: Fulano">
http://gist.github.com/330318
VALIDACIÓN EN EL CLIENTE
Usando Javascript

Usando el atributo REQUIRED
<label for="field">Nombre</label>
<input required id="field" name="name"
placeholder="Ej: Fulano">

O mejor, usando WAI-ARIA
<label for="field">Nombre</label>
<input required aria-required="true" id="field"
name="name" placeholder="Ej: Fulano">
VALIDACIÓN EN EL CLIENTE
TIPOS DE CAMPO
search
tel
url
email
datetime
date
month
week
time
datetime-local
number
range
color             HTML5Pattern.com
JAVASCRIPT NO INTRUSIVO
Javascript no intrusivo con JQuery
<script>
  $('.graph').plot();
</script>

Si cambian los datos para cada instancia
<div class="graph"></graph>
<script>
  $('.graph').plot({
    series: [...]
  });
</script>
JAVASCRIPT NO INTRUSIVO
Usando el atributo DATA
<div class="graph" data-series="[...]">
</graph>


<script>
  $('.graph').each(function() {
    $(this).plot({
      series: $(this).data('series')
    });
  });
</script>
SVG Y CANVAS
EL DOM ACCESIBLE




http://asurkov.blogspot.com.ar/2012/02/dom-inspector-as-accessibility-tool.html
EL DOM ACCESIBLE




|
Firefox DOM Inspector Accessible
Tree
AVIEWER




http://goo.gl/Oj6Du
ACCESIBILIDAD DE SVG
<svg                                     Elemento SVG dentro de un HTML.
                                         Marcar como imagen usando
  width="534"                            el rol de ARIA y atributo title.
  height="344"                           (Sino lee 'iframe' y URL del svg)
  role="img"
  title="Un SVG accesible"
  xmlns="http://www.w3.org/2000/svg"
  tabindex="1">

  <g>                                    DOM interno del SVG, con ARIA.
                                         No soportado como uno espera.
    <path
      fill="#2C748C"
      d="M80,41.5A12.5,12.5,0,1,1,79.9,41.5 z"/>
      role="listitem"
      aria-label="41% en Corrientes" />

  </g>

</svg>                                                        http://goo.gl/RvoSa
SVG COMO IMAGEN
  Se muestran los valores en texto
  Reforzado con ARIA slider
  <svg
   role="range"
   aria-valuemax="19"
   aria-valuemin="1"
   aria-valuenow="4"
   arial-valuetext="4 right now"
   aria-labelledby="title_id"
   aria-live="polite">...</svg>



http://dojotoolkit.org/reference-guide/1.8/dojox/widget/AnalogGauge.html
TABLAS COMO ORIGEN
                                role="image" aria-describedby="id_tabla"
     <caption>
                     <sup>
                         <td>
                     <sub>
                         <th>
<thead><th>




http://elauria.com/charts
Tutorial: http://goo.gl/AkwdV
ACCESIBILIDAD DE CANVAS
 <canvas
  id="example"
  width="260"
                                                                   Sub-DOM o “shadow DOM” de HTML y ARIA
  height="200">                                                    como fallback. Replica lo que sucede en el canvas .

          <h2>Formas</h2>
          <p>Un rectángulo con borde negro.</p>
 </canvas>




http://www.paciellogroup.com/blog/2012/06/html5-canvas-accessibility-in-firefox-13/
EL ESTADO ACTUAL
            “La accesibilidad de SVG no es mucho
                   mejor que la de canvas.”




Steve Faulkner, http://lists.w3.org/Archives/Public/w3c-wai-ig/2012JulSep/0178.html
CSS3
border-radius
                 box-shadow
 gradients
                 text-shadow
    rgba()
               @fontface
column-count      transform
   transitions
LA REVOLUCIÓN DE CSS3


    Maquetado sin tablas


   Maquetado sin imágenes
RECORTE DE IMÁGENES
“Image slicing”
Trabajoso, repetitivo, propenso a errores
Difícil de hacer escalable
Riesgos si no cargan las imágenes
Más consultas HTTP
REEMPLAZO DE IMÁGENES
“Image replacement”
Display:none oculto a lectores de pantalla
No se puede leer si no cargan las imágenes
No se puede seleccionar
No aplican estilos del usuario
El diseño es poco flexible
Difícil de entender para principiantes
PENSAR EL DISEÑO Y EL
MAQUETADO DE OTRA MANERA
Entender cómo funciona el diseño
Desarrollo transparente, sin trucos
Aceptar las diferencias
Usar con precaución / usar “polyfills”
http://css3.mikeplate.com/
http://css3.mikeplate.com/
http://css3.mikeplate.com/
http://css3.mikeplate.com/
http://layerstyles.org/builder.html
http://www.colorzilla.com/gradient-editor/
VENTAJAS
Menos archivos para descargar
El diseño no se pierde con imágenes desactivadas
Permite usar estilos de usuario
Diseño más flexible
   – Se adapta al contenido
   – Responsive
   – Mobile friendly!
NOS LO HACEN DIFÍCIL
Falta de soporte o problemas de renderizado
Sintaxis compleja
Prefijos de navegador
/* Old browsers */
   background: #1e5799;
/* FF3.6+ */
   background: -moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
/* Chrome,Safari4+ */
   background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799),
   color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8));
/* Chrome10+,Safari5.1+ */
   background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
/* Opera 11.10+ */
   background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
/* IE10+ */
   background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
/* W3C */
   background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
/* IE6-9 */
   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799',
   endColorstr='#7db9e8',GradientType=0 );
WAI-ARIA EN 5 MINUTOS
LANDMARK ROLES
 “Son muy fáciles de implementar y, junto con los
        encabezados de HTML, podrían ser
      revolucionarios en mejorar el acceso.”




Terrill Thompson en http://terrillthompson.com/blog/262
LANDMARK ROLES
                                                                           banner

                                       navigation                                       search



                                             main                                   complementary



                                                                  contentinfo
http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/
DESDUPLICAR LINKS




                    http://goo.gl/owI01
DESDUPLICAR LINKS
A la antigua
<h2>Corrientes</h2>
<a href="mapas">Mapas
  <span class="hidden">de Corrientes</span></a>
<a href="activ">Actividades
  <span class="hidden">de Corrientes</span></a>

.hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
DESDUPLICAR LINKS
Con WAI-ARIA


<h2 id="head_1">Corrientes</h2>
<a href="mapas" aria-describedby="head_1">Mapas</a>
<a href="activ" aria-describedby="head_1">Actividades</a>




http://oaa-accessibility.org/example/44/
SALTEAR REDUNDANCIAS




http://john.foliot.ca/aria-hidden/
SALTEAR REDUNDANCIAS

(function($) {

      $(".home-map img, #Map area")
        .attr({
          'role': 'presentation',
          'aria-hidden':'true'
                                                                                            Del lector de pantalla
        });

      $("#Map area")
        .attr('tabindex','-1')

})(jQuery);
                                                                              Del teclado

Role:presentation no funciona en elementos enfocables, y otras reflexiones:
http://asurkov.blogspot.com/2012/02/aria-hidden-and-rolepresentation.html
INDICAR DESPLEGABLES
La forma “correcta”




      http://www.w3.org/WAI/PF/aria-practices/#menu
INDICAR DESPLEGABLES
 La forma fácil




http://yuilibrary.com/yui/docs/node-menunav/
INDICAR DESPLEGABLES
No tan correcto... ¡pero realista!


 <a id="button-1"
     aria-expanded="false"
     aria-controls="menu-1">Menú</a>
 <ul id="menu-1">
   <li>...</li>
   <li>...</li>
 </ul>
CUÁNDO USAR WAI-ARIA
    "WAI-ARIA sirve para mejorar, no sustituir, el
     marcado nativo. Deberíamos usar éste último
              cuando está disponible"




http://www.marcozehe.de/2011/12/05/from-wai-aria-to-html5-and-back-or-maybe-not/
CUÁNDO USAR WAI-ARIA

<nav role="navigation">...</nav>

<input type="range" role="slider" aria-valuemin="0"
 min="0" />

<div style="text-decoration: underline" tabindex="0"
 role="link">ARIA link</div>


                         :'(
NO EMPEZAR
  DE CERO
COMPONENTES ACCESIBLES
Testearlo en nuestros browsers objetivo
Puedo usarlo con el teclado
Escalable (text zoom)
Si hay links, que apunten a una URL
¿Dice ser accesible?
Librerías
HERRAMIENTAS
Firefox Accessibility Extension
Examinator
Firefox + NVDA
DOM Inspector Accessible Tree




http://asurkov.blogspot.com.ar/2012/02/dom-inspector-as-accessibility-tool.html
NO TE CONFÍES




 <strong class="price" itemprop="price">
 $700<sup>00</sup>
</strong>

https://github.com/mercadolibre/chico/issues/632
MAQUETADOR (FRONT-END)
Probar con un agente de usuario, en lugar de
 contar errores de validación.


                                          +




Incluir el lector de pantalla en la matriz de
navegadores soportados.
¿PREGUNTAS?
     @mrazzari
   @camilokawerin
No deje de completar su evaluación online

          ux2012.com.ar/encuesta
                   ¡Muchas gracias!


Accesibilidad práctica con HTML5 + CSS3 + WAI-ARIA
            Camilo Kawerín y Manuel Razzari
<a onClick="seguir()">Click me!</a>
<script>
  function seguir() {
    window.location = "pagina.html";
  }
</script>

<form id="register" action="#">
  <button onClick="ejecutar()">Submit!</button>
</form>
<script>
  function ejecutar() {
    document.getElementById('register').submit();
  }
</script>

Contenu connexe

Tendances

Introduction To Web Accessibility
Introduction To Web AccessibilityIntroduction To Web Accessibility
Introduction To Web AccessibilitySteven Swafford
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityJoseph Dolson
 
Website Accessibility
Website AccessibilityWebsite Accessibility
Website AccessibilityNishan Bose
 
ARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityPaul Bohman
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web AccessibilityAndrea Dubravsky
 
Web accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityWeb accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityMedia Access Australia
 
Laravel - Website Development in Php Framework.
Laravel - Website Development in Php Framework.Laravel - Website Development in Php Framework.
Laravel - Website Development in Php Framework.SWAAM Tech
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIAIWMW
 
SSO With APEX and ADFS the weblogic way
SSO With APEX and ADFS the weblogic waySSO With APEX and ADFS the weblogic way
SSO With APEX and ADFS the weblogic waymakker_nl
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibilityAGILEDROP
 
Web Accessibility for Web Developers
Web Accessibility for Web DevelopersWeb Accessibility for Web Developers
Web Accessibility for Web DevelopersAlexander Loechel
 
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsWCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsUXPA International
 
Practical tools for Web Accessibility testing
Practical tools for Web Accessibility testingPractical tools for Web Accessibility testing
Practical tools for Web Accessibility testingToufic Sbeiti
 

Tendances (20)

Introduction To Web Accessibility
Introduction To Web AccessibilityIntroduction To Web Accessibility
Introduction To Web Accessibility
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared Responsibility
 
Accessibilitytesting public
Accessibilitytesting publicAccessibilitytesting public
Accessibilitytesting public
 
Website Accessibility
Website AccessibilityWebsite Accessibility
Website Accessibility
 
ARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityARIA and JavaScript Accessibility
ARIA and JavaScript Accessibility
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web Accessibility
 
Web accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityWeb accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibility
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Laravel - Website Development in Php Framework.
Laravel - Website Development in Php Framework.Laravel - Website Development in Php Framework.
Laravel - Website Development in Php Framework.
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIA
 
Who is BIRT
Who is BIRTWho is BIRT
Who is BIRT
 
Introduction To WCAG 2.0
Introduction To WCAG 2.0Introduction To WCAG 2.0
Introduction To WCAG 2.0
 
SSO With APEX and ADFS the weblogic way
SSO With APEX and ADFS the weblogic waySSO With APEX and ADFS the weblogic way
SSO With APEX and ADFS the weblogic way
 
Building Advanced XSS Vectors
Building Advanced XSS VectorsBuilding Advanced XSS Vectors
Building Advanced XSS Vectors
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
 
Web Accessibility for Web Developers
Web Accessibility for Web DevelopersWeb Accessibility for Web Developers
Web Accessibility for Web Developers
 
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsWCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
 
Practical tools for Web Accessibility testing
Practical tools for Web Accessibility testingPractical tools for Web Accessibility testing
Practical tools for Web Accessibility testing
 

En vedette

Accesibilidad web - más allá del marcado
Accesibilidad web - más allá del marcadoAccesibilidad web - más allá del marcado
Accesibilidad web - más allá del marcadoManuel Razzari
 
Accesibilidad web en mapas y visualización de información
Accesibilidad web en mapas y visualización de informaciónAccesibilidad web en mapas y visualización de información
Accesibilidad web en mapas y visualización de informaciónManuel Razzari
 
State of the Word 2016
State of the Word 2016State of the Word 2016
State of the Word 2016photomatt
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 
Buenas y malas prácticas de accesibilidad en documentos electrónicos
Buenas y malas prácticas de accesibilidad en documentos electrónicosBuenas y malas prácticas de accesibilidad en documentos electrónicos
Buenas y malas prácticas de accesibilidad en documentos electrónicosOlga Carreras Montoto
 
XWiki Rendering @ FOSDEM 2014
XWiki Rendering @ FOSDEM 2014XWiki Rendering @ FOSDEM 2014
XWiki Rendering @ FOSDEM 2014Vincent Massol
 
Principios básicos de UX para móviles
Principios básicos de UX para móvilesPrincipios básicos de UX para móviles
Principios básicos de UX para móvilesJavier Cuello
 
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móviles
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móvilesTestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móviles
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móvilesLisandra Armas
 
Kraut-Publishers-Kurzvorstellung
Kraut-Publishers-KurzvorstellungKraut-Publishers-Kurzvorstellung
Kraut-Publishers-KurzvorstellungAndrea Kamphuis
 
Herausforderung Hyperdistribution
Herausforderung HyperdistributionHerausforderung Hyperdistribution
Herausforderung HyperdistributionEhrhardt Heinold
 
Social Media für Verlage. Einführung und Überblick.
Social Media für Verlage. Einführung und Überblick.Social Media für Verlage. Einführung und Überblick.
Social Media für Verlage. Einführung und Überblick.Wibke Ladwig
 
Erfolgsfaktoren im Change-Management der Verlag
Erfolgsfaktoren im Change-Management der VerlagErfolgsfaktoren im Change-Management der Verlag
Erfolgsfaktoren im Change-Management der VerlagMarkus Wilhelm
 
Learntec charts heinold_2013
Learntec charts heinold_2013Learntec charts heinold_2013
Learntec charts heinold_2013Ehrhardt Heinold
 
Agile Business Development
Agile Business DevelopmentAgile Business Development
Agile Business DevelopmentJens Korte
 
Accesibilidad Web (esa gran olvidada)
Accesibilidad Web (esa gran olvidada)Accesibilidad Web (esa gran olvidada)
Accesibilidad Web (esa gran olvidada)Adolfo Sanz De Diego
 

En vedette (20)

Accesibilidad web - más allá del marcado
Accesibilidad web - más allá del marcadoAccesibilidad web - más allá del marcado
Accesibilidad web - más allá del marcado
 
Accesibilidad web en mapas y visualización de información
Accesibilidad web en mapas y visualización de informaciónAccesibilidad web en mapas y visualización de información
Accesibilidad web en mapas y visualización de información
 
Mapoteca accesible
Mapoteca accesibleMapoteca accesible
Mapoteca accesible
 
State of the Word 2016
State of the Word 2016State of the Word 2016
State of the Word 2016
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
Buenas y malas prácticas de accesibilidad en documentos electrónicos
Buenas y malas prácticas de accesibilidad en documentos electrónicosBuenas y malas prácticas de accesibilidad en documentos electrónicos
Buenas y malas prácticas de accesibilidad en documentos electrónicos
 
XWiki Rendering @ FOSDEM 2014
XWiki Rendering @ FOSDEM 2014XWiki Rendering @ FOSDEM 2014
XWiki Rendering @ FOSDEM 2014
 
PresentacióN Jaisiel Taller Uoc 19 05 2009
PresentacióN Jaisiel Taller Uoc 19 05 2009PresentacióN Jaisiel Taller Uoc 19 05 2009
PresentacióN Jaisiel Taller Uoc 19 05 2009
 
Principios básicos de UX para móviles
Principios básicos de UX para móvilesPrincipios básicos de UX para móviles
Principios básicos de UX para móviles
 
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móviles
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móvilesTestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móviles
TestingUY 2016 - Pruebas de Accesibilidad para aplicaciones móviles
 
Heinold Medien 2 0
Heinold Medien 2 0Heinold Medien 2 0
Heinold Medien 2 0
 
Kraut-Publishers-Kurzvorstellung
Kraut-Publishers-KurzvorstellungKraut-Publishers-Kurzvorstellung
Kraut-Publishers-Kurzvorstellung
 
Herausforderung Hyperdistribution
Herausforderung HyperdistributionHerausforderung Hyperdistribution
Herausforderung Hyperdistribution
 
Geschaeftsmodelle heinold
Geschaeftsmodelle heinoldGeschaeftsmodelle heinold
Geschaeftsmodelle heinold
 
Social Media für Verlage. Einführung und Überblick.
Social Media für Verlage. Einführung und Überblick.Social Media für Verlage. Einführung und Überblick.
Social Media für Verlage. Einführung und Überblick.
 
Heinold learntec 2014
Heinold learntec 2014Heinold learntec 2014
Heinold learntec 2014
 
Erfolgsfaktoren im Change-Management der Verlag
Erfolgsfaktoren im Change-Management der VerlagErfolgsfaktoren im Change-Management der Verlag
Erfolgsfaktoren im Change-Management der Verlag
 
Learntec charts heinold_2013
Learntec charts heinold_2013Learntec charts heinold_2013
Learntec charts heinold_2013
 
Agile Business Development
Agile Business DevelopmentAgile Business Development
Agile Business Development
 
Accesibilidad Web (esa gran olvidada)
Accesibilidad Web (esa gran olvidada)Accesibilidad Web (esa gran olvidada)
Accesibilidad Web (esa gran olvidada)
 

Similaire à Accesibilidad práctica con HTML5, CSS3 y WAI-ARIA

Estándares Web con Chico UI
Estándares Web con Chico UIEstándares Web con Chico UI
Estándares Web con Chico UIGuillermo Paz
 
Frameworks CSS
Frameworks CSSFrameworks CSS
Frameworks CSSbetabeers
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSSLuis Miguel Martín
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Esteban Saavedra
 
Tarea presentaciones en linea
Tarea presentaciones en lineaTarea presentaciones en linea
Tarea presentaciones en lineaScoutES7
 
Conoce HTML5 y CSS3
Conoce HTML5 y CSS3Conoce HTML5 y CSS3
Conoce HTML5 y CSS3Marta Armada
 
Programación web con HTML5
Programación web con HTML5Programación web con HTML5
Programación web con HTML5Jorge del Casar
 
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a GoogleiDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a GoogleMiguel Ángel Pau
 

Similaire à Accesibilidad práctica con HTML5, CSS3 y WAI-ARIA (20)

Estándares Web con Chico UI
Estándares Web con Chico UIEstándares Web con Chico UI
Estándares Web con Chico UI
 
Frameworks CSS
Frameworks CSSFrameworks CSS
Frameworks CSS
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSS
 
myprofly
myproflymyprofly
myprofly
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
6.angular js
6.angular js6.angular js
6.angular js
 
Bootstrap, un framework CSS
Bootstrap, un framework CSSBootstrap, un framework CSS
Bootstrap, un framework CSS
 
Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3
 
Tarea presentaciones en linea
Tarea presentaciones en lineaTarea presentaciones en linea
Tarea presentaciones en linea
 
Ria 03-html5-css3
Ria 03-html5-css3Ria 03-html5-css3
Ria 03-html5-css3
 
html5-css3
html5-css3html5-css3
html5-css3
 
Html5 css3
Html5 css3Html5 css3
Html5 css3
 
Conoce HTML5 y CSS3
Conoce HTML5 y CSS3Conoce HTML5 y CSS3
Conoce HTML5 y CSS3
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Programación web con HTML5
Programación web con HTML5Programación web con HTML5
Programación web con HTML5
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
HTML5
HTML5HTML5
HTML5
 
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a GoogleiDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
iDay Feb 2017 - Marcado de datos estructurados. Pónselo fácil a Google
 
Laboratorio 03
Laboratorio 03Laboratorio 03
Laboratorio 03
 

Dernier

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 

Dernier (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 

Accesibilidad práctica con HTML5, CSS3 y WAI-ARIA

  • 1. Accesibilidad práctica con HTML5 + CSS3 + WAI-ARIA Camilo Kawerin y Manuel Razzari @camilokawerin @mrazzari
  • 2. SUMARIO 1.Introducción: accesibilidad todos los días 2.HTML5: etiquetas, reglas, atributos 3. SVG y canvas: estado actual 4. CSS3: maquetado sin imágenes 5. WAI-ARIA: arreglos sencillos 6. Herramientas
  • 3. ACCESIBILIDAD COTIDIANA Olvidarse de A, AA, AAA Bajar al validador del pedestal Es una herramienta más Valida errores de código No inventar soluciones “creativas”
  • 5. CAMBIOS EN HTML5 Nuevas reglas Sintaxis flexible Enlaces “block-level” Nuevas etiquetas Marcado más semántico Nuevos atributos Formularios Dataset API
  • 6. SINTAXIS EN HTML5 No se consideran errores: – Etiquetas en MAYÚSCULAS – Atributos sin comillas – Falta de etiqueta HTML, HEAD o BODY – Falta de cierre de etiquetas P, LI, HEAD – Falta de cierre de elementos “standalone”
  • 7. SINTAXIS EN HTML5 Etiquetas mal anidadas <strong><em>Mal ejemplo</strong></em> Atributos repetidos <img alt="" src="" alt=""> IDs repetidos <input id="field" name="name" placeholder="Ej: Camilo"> <input id="field" name="location" placeholder="Ej: Corrientes">
  • 8. ENLACES “INLINE-LEVEL” <div class="story"> <h3><a href="ux2012.html"> UX2012 es el evento del año </a></h3> <p><a href="ux2012.html"> <img src="ux2012.jpg" alt="artículo completo" />Diseñadores y programadores de todo el mundo colmaron las salas del CCGSM.</a></p> <p><a href="ux2012.html">Read more</a></p> </div> Enlaces redundantes Texto del enlace no es único
  • 9. ENLACES “BLOCK-LEVEL” <article> <a href="ux2012.html"> <h3>UX2012 es el evento del año</h3> <p><img src="ux2012.jpg" alt="multitud sedienta de saber">Diseñadores y programadores de todo el mundo colmaron las salas del CCGSM.</p> <p>Read more</p> </a> </article> Texto del enlace único Agregamos información en el ALT
  • 10. ENLACES “BLOCK-LEVEL” <header> <a href="/"> <img src="logo.png" alt="mi bonito logo"> <h1>Mi sitio</h1> <p>Toda la información que buscás</p> </a> </header>
  • 11. SEMÁNTICA EN HTML5 <div class="picture"> <img src="ux2010.jpg" alt="Una multitud llenó las salas del CCGSM"> <p>Una multitud llenó las salas del CCGSM</p> </div> Descripción redundante
  • 12. SEMÁNTICA EN HTML5 Cómo lo resolvemos <figure> <img src="ux2010.jpg"> <figcaption>Una multitud llenó las salas del CCGSM</figcaption> </figure> O mejor aún <figure role="img" aria-labelledby="lidl"> <img src="ux2010.jpg"> <figcaption id="lidl">Una multitud llenó las salas del CCGSM</figcaption> </figure>
  • 13. FORMULARIOS Atributo PLACEHOLDER Validación en el cliente Tipo de campo de acuerdo al tipo de dato Compatibilidad hacia atrás y “polyfills”
  • 14. ATRIBUTO PLACEHOLDER Usando el atributo VALUE <label for="field">Nombre</label> <input id="field" name="name" value="Ej: Fulano"> Dificulta la validación Agrega suciedad al autocomplete Usando el atributo PLACEHOLDER <label for="field">Nombre</label> <input id="field" name="name" value="" placeholder="Ej: Fulano"> http://gist.github.com/330318
  • 15. VALIDACIÓN EN EL CLIENTE Usando Javascript Usando el atributo REQUIRED <label for="field">Nombre</label> <input required id="field" name="name" placeholder="Ej: Fulano"> O mejor, usando WAI-ARIA <label for="field">Nombre</label> <input required aria-required="true" id="field" name="name" placeholder="Ej: Fulano">
  • 16. VALIDACIÓN EN EL CLIENTE
  • 18. JAVASCRIPT NO INTRUSIVO Javascript no intrusivo con JQuery <script> $('.graph').plot(); </script> Si cambian los datos para cada instancia <div class="graph"></graph> <script> $('.graph').plot({ series: [...] }); </script>
  • 19. JAVASCRIPT NO INTRUSIVO Usando el atributo DATA <div class="graph" data-series="[...]"> </graph> <script> $('.graph').each(function() { $(this).plot({ series: $(this).data('series') }); }); </script>
  • 23. Firefox DOM Inspector Accessible Tree
  • 25. ACCESIBILIDAD DE SVG <svg Elemento SVG dentro de un HTML. Marcar como imagen usando width="534" el rol de ARIA y atributo title. height="344" (Sino lee 'iframe' y URL del svg) role="img" title="Un SVG accesible" xmlns="http://www.w3.org/2000/svg" tabindex="1"> <g> DOM interno del SVG, con ARIA. No soportado como uno espera. <path fill="#2C748C" d="M80,41.5A12.5,12.5,0,1,1,79.9,41.5 z"/> role="listitem" aria-label="41% en Corrientes" /> </g> </svg> http://goo.gl/RvoSa
  • 26. SVG COMO IMAGEN Se muestran los valores en texto Reforzado con ARIA slider <svg role="range" aria-valuemax="19" aria-valuemin="1" aria-valuenow="4" arial-valuetext="4 right now" aria-labelledby="title_id" aria-live="polite">...</svg> http://dojotoolkit.org/reference-guide/1.8/dojox/widget/AnalogGauge.html
  • 27. TABLAS COMO ORIGEN role="image" aria-describedby="id_tabla" <caption> <sup> <td> <sub> <th> <thead><th> http://elauria.com/charts Tutorial: http://goo.gl/AkwdV
  • 28. ACCESIBILIDAD DE CANVAS <canvas id="example" width="260" Sub-DOM o “shadow DOM” de HTML y ARIA height="200"> como fallback. Replica lo que sucede en el canvas . <h2>Formas</h2> <p>Un rectángulo con borde negro.</p> </canvas> http://www.paciellogroup.com/blog/2012/06/html5-canvas-accessibility-in-firefox-13/
  • 29. EL ESTADO ACTUAL “La accesibilidad de SVG no es mucho mejor que la de canvas.” Steve Faulkner, http://lists.w3.org/Archives/Public/w3c-wai-ig/2012JulSep/0178.html
  • 30. CSS3
  • 31. border-radius box-shadow gradients text-shadow rgba() @fontface column-count transform transitions
  • 32. LA REVOLUCIÓN DE CSS3 Maquetado sin tablas Maquetado sin imágenes
  • 33. RECORTE DE IMÁGENES “Image slicing” Trabajoso, repetitivo, propenso a errores Difícil de hacer escalable Riesgos si no cargan las imágenes Más consultas HTTP
  • 34. REEMPLAZO DE IMÁGENES “Image replacement” Display:none oculto a lectores de pantalla No se puede leer si no cargan las imágenes No se puede seleccionar No aplican estilos del usuario El diseño es poco flexible Difícil de entender para principiantes
  • 35. PENSAR EL DISEÑO Y EL MAQUETADO DE OTRA MANERA Entender cómo funciona el diseño Desarrollo transparente, sin trucos Aceptar las diferencias Usar con precaución / usar “polyfills”
  • 36.
  • 43. VENTAJAS Menos archivos para descargar El diseño no se pierde con imágenes desactivadas Permite usar estilos de usuario Diseño más flexible – Se adapta al contenido – Responsive – Mobile friendly!
  • 44. NOS LO HACEN DIFÍCIL Falta de soporte o problemas de renderizado Sintaxis compleja Prefijos de navegador /* Old browsers */ background: #1e5799; /* FF3.6+ */ background: -moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); /* Chrome,Safari4+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome10+,Safari5.1+ */ background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera 11.10+ */ background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* IE10+ */ background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */ background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* IE6-9 */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
  • 45. WAI-ARIA EN 5 MINUTOS
  • 46. LANDMARK ROLES “Son muy fáciles de implementar y, junto con los encabezados de HTML, podrían ser revolucionarios en mejorar el acceso.” Terrill Thompson en http://terrillthompson.com/blog/262
  • 47. LANDMARK ROLES banner navigation search main complementary contentinfo http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/
  • 48. DESDUPLICAR LINKS http://goo.gl/owI01
  • 49. DESDUPLICAR LINKS A la antigua <h2>Corrientes</h2> <a href="mapas">Mapas <span class="hidden">de Corrientes</span></a> <a href="activ">Actividades <span class="hidden">de Corrientes</span></a> .hidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
  • 50. DESDUPLICAR LINKS Con WAI-ARIA <h2 id="head_1">Corrientes</h2> <a href="mapas" aria-describedby="head_1">Mapas</a> <a href="activ" aria-describedby="head_1">Actividades</a> http://oaa-accessibility.org/example/44/
  • 52. SALTEAR REDUNDANCIAS (function($) { $(".home-map img, #Map area") .attr({ 'role': 'presentation', 'aria-hidden':'true' Del lector de pantalla }); $("#Map area") .attr('tabindex','-1') })(jQuery); Del teclado Role:presentation no funciona en elementos enfocables, y otras reflexiones: http://asurkov.blogspot.com/2012/02/aria-hidden-and-rolepresentation.html
  • 53. INDICAR DESPLEGABLES La forma “correcta” http://www.w3.org/WAI/PF/aria-practices/#menu
  • 54. INDICAR DESPLEGABLES La forma fácil http://yuilibrary.com/yui/docs/node-menunav/
  • 55. INDICAR DESPLEGABLES No tan correcto... ¡pero realista! <a id="button-1" aria-expanded="false" aria-controls="menu-1">Menú</a> <ul id="menu-1"> <li>...</li> <li>...</li> </ul>
  • 56. CUÁNDO USAR WAI-ARIA "WAI-ARIA sirve para mejorar, no sustituir, el marcado nativo. Deberíamos usar éste último cuando está disponible" http://www.marcozehe.de/2011/12/05/from-wai-aria-to-html5-and-back-or-maybe-not/
  • 57. CUÁNDO USAR WAI-ARIA <nav role="navigation">...</nav> <input type="range" role="slider" aria-valuemin="0" min="0" /> <div style="text-decoration: underline" tabindex="0" role="link">ARIA link</div> :'(
  • 58. NO EMPEZAR DE CERO
  • 59. COMPONENTES ACCESIBLES Testearlo en nuestros browsers objetivo Puedo usarlo con el teclado Escalable (text zoom) Si hay links, que apunten a una URL ¿Dice ser accesible? Librerías
  • 60. HERRAMIENTAS Firefox Accessibility Extension Examinator Firefox + NVDA DOM Inspector Accessible Tree http://asurkov.blogspot.com.ar/2012/02/dom-inspector-as-accessibility-tool.html
  • 61. NO TE CONFÍES <strong class="price" itemprop="price"> $700<sup>00</sup> </strong> https://github.com/mercadolibre/chico/issues/632
  • 62. MAQUETADOR (FRONT-END) Probar con un agente de usuario, en lugar de contar errores de validación. + Incluir el lector de pantalla en la matriz de navegadores soportados.
  • 63. ¿PREGUNTAS? @mrazzari @camilokawerin
  • 64. No deje de completar su evaluación online ux2012.com.ar/encuesta ¡Muchas gracias! Accesibilidad práctica con HTML5 + CSS3 + WAI-ARIA Camilo Kawerín y Manuel Razzari
  • 65.
  • 66. <a onClick="seguir()">Click me!</a> <script> function seguir() { window.location = "pagina.html"; } </script> <form id="register" action="#"> <button onClick="ejecutar()">Submit!</button> </form> <script> function ejecutar() { document.getElementById('register').submit(); } </script>