Charla impartida en la DrupalCamp 2017 sobre cómo abordar la accesibilidad desde el inicio de un proyecto, a través del uso de patrones de diseño inclusivos.
class="button button--fav" data- action="fav"></div> <!-- Esto es un parche --> <div class="button button--fav" data-action="fav" aria-label=“Añadir a mis favoritos" tabindex="0"></div>
data-action="fav" aria-label=“Añadir a mis favoritos"> <svg> <use xlink:href="#fav"></use> </svg> </button> <!-- O esto --> <button data-action="fav"> <span class=“visually-hidden">Añadir a mis favoritos</span> <svg> <use xlink:href="#fav"></use> </svg> </button>
página • Ayuda a los navegadores a elegir fuentes con el conjunto apropiado de caracteres • En lectores de pantalla determina el sintetizador de voz adecuado. Partiendo desde cero
minimum-scale=1.0, maximum- scale=1.0, user-scalable=no"> <!-- Usa esto mejor--> <meta name="viewport" content="width=device-width, initial-scale=1.0"> Partiendo desde cero
un elemento por página Partiendo desde cero <!-- Esto es válido, pero mejor usar main como etiqueta directamente --> <div role="main"> ... </div> <!-- Esto es redundante --> <main role="main"> ... </main> <!-- Usa esto, no hace falta nada más --> <main> ... </main>
contenido de la página que apuntan a la región principal de contenido • Normalmente ocultos, sí son visibles cuando reciben el foco Partiendo desde cero
caracteres y estilos que necesitamos? • ¿Se diferencian bien sus caracteres o hay algunos que pueden confundirse? • ¿Su forma facilita la lectura? • ¿Sus métricas son consistentes en todos los caracteres que la componen? Mejorar la legibilidad
ofende a nadie • Siempre en unidades relativas Mejorar la legibilidad /* No uses esto */ html { font-size: 16px; } /* Usa esto */ html { font-size: 100%; }
el color del texto y el color de fondo • Combinaciones de muy alto contraste también pueden resultar problemáticas • Existen multitud de validadores: extensión de Chrome, extensión de Firefox Mejorar la legibilidad
none; } /* Si no te gusta el estilo por defecto puedes usar el tuyo propio. Este es de GOV.UK */ p a:focus { outline: 3px solid #ffbf47; background-color: #ffbf47; } Mejorar la legibilidad
Lo lógico es que sea único y que describa adecuadamente el título de la página • Al igual que el elemento <main> también provee de un atajo a los usuarios de dispositivos de apoyo Páginas
nivel --> <h1>Patrones de diseño inclusivos</h1> <h3>Secciones y subsecciones</h3> <!-- Respeta la jerarquía de títulos --> <h1>Patrones de diseño inclusivos</h1> <h2>Páginas</h2> <h3>Secciones y subsecciones</h3> Páginas
<!-- Esto no es un subítulo, crea una subsección --> <h2>Cómo abordar la accesibilidad en el desarrollo de temas personalizados en Drupal 8</h2> <!-- Usa esto --> <h1>Patrones de diseño inclusivos</h1> <p><span class="visually-hidden">Subtítulo:</span> Cómo abordar la accesibilidad en el desarrollo de temas personalizados en Drupal 8</p> Páginas
regiones de navegación también son reconocidas por los dispositivos de apoyo (consultar WAI-ARIA Landmark roles). • Pueden existir múltiples elementos <nav> en una página. Navegación
etiqueta directamente --> <div role="navigation"> ... </div> <!-- Esto es redundante --> <nav role="navigation"> ... </nav> <!-- Usa esto, no hace falta nada más --> <nav> ... </nav> Navegación
menos de 5 elementos, es mejor dejarlo siempre visible. • Si vas a utilizar el típico hamburguer acompáñalo siempre del texto “Menú”. • Para la imagen usa el formato svg • Debe tener un tamaño adecuado para la interacción en dispositivos móviles. • El código javascript que da soporte a la interacción debe considerarse como crítico. Navegación