86
Pensando en accesibilidad Hernán Garzón de la Roza

Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Embed Size (px)

Citation preview

Page 1: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Pensando en accesibilidad

Hernán Garzón de la Roza

Page 2: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Agenda● Definición y contexto

● Cómo afectan las diferentes discapacidades el acceso a la web

● Principios de diseño accesible (wcag)

● Prácticas de frontend (wai-aria)

Page 3: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

“The power of the web is in its universality. Access by everyone

regardless of disability is an essential aspect.”

Tim Berners-Lee

Page 4: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

AccesibilidadPercibir, entender, navegar, e interactuar con la web

Page 5: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Percibir: comprender o conocer algo.

Page 6: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Entender: tener idea clara de las cosas.

Page 7: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Navegar: desplazarse a través de una red informática.

Page 8: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Interaccionar: ejercer una interacción.

Page 9: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

W ebA ccessibility I nitiative

http://www.w3.org/WAI/

Page 10: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Contexto

Page 11: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Opinión de los profesionales de

Accesibilidad Web

Page 12: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

http://webaim.org/projects/practitionersurvey/

Región

Page 13: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

http://webaim.org/projects/practitionersurvey/

Universo

Page 14: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

http://webaim.org/projects/practitionersurvey/

Uso de Browsers

Page 15: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

http://webaim.org/projects/practitionersurvey/

¿Que tendría un mayor impacto sobre la accesibilidad?

Page 16: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

http://webaim.org/projects/practitionersurvey/

¿Porque los sitios web no son accesibles?

● Falta de conciencia sobre el tema (36%)

● Falta de conocimiento (36%)

● Falta de dinero o recursos (14%)

● Miedo a que la accesibilidad arruine el diseño o la

funcionalidad (13%)

Page 17: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

¿Cómo usan la web las personas con discapacidad?

Page 18: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

¡Igual que todos!

Page 19: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Tipos de discapacidad

Page 20: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Sensorial: visual y auditiva

Page 21: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Lectores de vozteclados braille

Subtítulos

Sensorial: visual y auditiva

Page 22: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Discapacidad física o motora

Page 23: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Incapacidad del habla

Page 24: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Incapacidad neurológica, intelectual o cognitiva

Page 25: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Situaciones relacionadas con el envejecimiento

Page 26: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina
Page 27: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Principios de diseño accesible

Page 28: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WCAG

eb

ontent

ccessibility

uidelines

Page 29: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Requisitos de conformidadvisibilidad, operatividad, comprensividad y robustez.

Page 30: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WCAGconformance requirements

Level A

http://www.w3.org/WAI/WCAG2-Conformance

Page 31: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WCAGconformance requirements

Level AA

http://www.w3.org/WAI/WCAG2-Conformance

Page 32: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WCAGconformance requirements

Level AAA

http://www.w3.org/WAI/WCAG2-Conformance

Page 33: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Texto alternativo para imagenes

http://webaim.org/techniques/alttext/

<img src="cart.jpg" alt="Proceed to checkout" />

Page 34: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Accesible con teclado

<h1 role=”button”> text </h1>Name: <input name="name" tabindex="1" />

Age: <input name="age" tabindex="3" />

Email: <input name="email" tabindex="2" />

Page 35: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Legible

<html lang="en">

</html>

Page 36: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Distinguible

Page 37: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Distinguible

Page 38: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Distinguible

Page 39: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Adaptable

Page 40: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

● características de navegación

● navegar al contenido principal

● <title>

● orden del foco de elementos

● propósito de los links

● <headings> y <labels>

● foco de los elementos visible

Navegable

Page 41: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI-ARIA

Page 42: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAi

ARiA

eb

ccessibility

nitative

ccesible

ich

nternet

pplications

Page 43: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA ¿Como agregar información accesible a elementos HTML usando la

especificación WAI-ARIA?

Page 44: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA Primera regla de ARIA

Usar elementos HTML5 nativos

Page 45: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA Segunda regla de uso de ARIA

No modificar la semántica nativa

Page 46: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

NO<h1 role="button">heading button</h1>

Page 47: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

MEJOR HACE ESTO...<h1><span role="button">heading button</span></h1>

Page 48: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

O MEJOR, ¡ESTO!<h1><button>heading button</button></h1>

Page 49: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA Tercera regla de uso de ARIA

Todos los elementos interactivos deben tener un nombre accesible

Page 50: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<!-- elemento que está etiquetado, pero no esta

asociado al control que debería etiquetar -->

user name <input type="text">

<label>user name</label> <input type="text">

Page 51: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<!-- Si usamos for/id envolviendo la etiqueta

alrededor del texto y el control, vamos a tener un

nombre accesible -->

<label>user name <input type="text"></label>

<label for="username">user name</label> <input

type="text" id="username">

Page 52: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA ROLES

http://www.w3.org/TR/wai-aria/roles

Page 53: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA ¿Que ocurre al agregar un role sobre la semántica

nativa de un elemento HTML?

Page 54: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<h1 role=”button”> text </h1>

<button> text </button>

Page 55: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA ¿Que NO hace?

Page 56: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<button role=”heading”> text </heading>

<heading> text </heading>

Page 57: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

● Abstractos

● Componente (widget)

● Documento (document)

● de marca (Landmark)

Categorización de los Roles

Page 58: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

ROLES de componentes (widgets)WAI ARIA

http://www.w3.org/TR/wai-aria/roles#widget_roles

Page 59: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

- alert- alertdialog- button- checkbox- dialog- gridcell- link- log- marquee- menuitem- menuitemcheckbox- menuitemradio- option

- progressbar- radio- scrollbar- slider- spinbutton- status- tab- tabpanel- textbox- timer- tooltip- treeitem

Page 60: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<img id="lbrb" alt="" src="ninja.png" width="150" class="ch-

shownby-pointerenter" data-title="This is a tooltip"

title="" aria-owns="ch-layer-23" aria-haspopup="true" data-side="

right" data-align="bottom" />

<div class="ch-popover ch-tooltip ch-cone" role="tooltip" id="ch-

layer-23" style="z-index: 1070; width: auto; height: auto;

position: absolute; top: 4751px; left: 1112px; display: block;"

data-side="right" data-align="bottom" aria-hidden="false">

<div class="ch-popover-content">This is a tooltip</div>

</div

www.chico-ui.com.ar

examplewidget roles: tooltip

Page 61: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

ROLES de componentes que actúan como contenedoresWAI ARIA

http://www.w3.org/TR/wai-aria/roles#widget_roles

Page 62: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

- combobox- grid- listbox- menu- menubar- radiogroup- tablist- tree- treegrid

Page 63: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

examplewidget roles: tablist

Page 64: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

examplewidget roles: tablist

<ul class="ch-tabs-triggers" role="tablist">

<li><a href="#tab1-a" class="ch-tab ch-user-no-select ch-

expandable-trigger-on" aria-controls="tab1-a" role="tab"

>Tab1</a></li>

<li><a href="#tab2-a" class="ch-tab ch-user-no-select" aria-

controls="tab2-a" role="tab">Tab2</a></li>

<li><a href="#tab3-a" class="ch-tab ch-user-no-select" aria-

controls="tab3-a" role="tab">Tab3</a></li>

<li><a href="/src/assets/ajax.html#ajax-a" class="ch-tab ch-

user-no-select" aria-controls="ajax-a" role="tab">Tab4</a></li>

</ul>

www.chico-ui.com.ar

Page 65: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

examplewidget roles: tabpanel

<div class="ch-box-lite ch-tabs-panel" role="presentation">

<div id="tab1-a" class="ch-tabpanel" aria-expanded="true" role="tabpanel" aria-hidden="false">

<p>Lorem ipsum dolor sit amet...</p>

</div>

<div id="tab2-a" class="ch-hide ch-tabpanel" aria-expanded="false" role="tabpanel">

<p>content...</p>

</div>

<div id="tab3-a" class="ch-hide ch-tabpanel" aria-expanded="false" role="tabpanel">

<p>content...</p>

</div>

<div id="ajax-a" class="ch-tabpanel ch-hide" aria-expanded="false" role="tabpanel"></div>

</div>

www.chico-ui.com.ar

Page 66: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

ROLES de documento (document)WAI ARIA

http://www.w3.org/TR/wai-aria/roles#document_structure_roles

Page 67: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

- article- columnheader- definition- directory- document- group- heading- img- list

- listitem- math- note- presentation- region- row- rowgroup- rowheader- separator- toolbar

Document ROLES

Page 68: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

ROLES de marca (landmarks)WAI ARIA

http://www.w3.org/TR/wai-aria/roles#landmark_roles

Page 69: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

role=”banner”

role=”main”

role=”contentinfo”

role

=”na

viga

tion”

Page 70: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

”application”

”banner”

“complementary”

“contentinfo”

”form”

“main”

“navigation”

“search”

Aria Landmark Role HTML5 sectioning element

No HTML5 equivalent

No HTML5 equivalent

<aside>

Recommended <footer>

Recommended neutral element

<main>

<nav>

No HTML5 equivalent

Use Application ROLE wisely!

Page 71: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA

● Atributos de componente

● Atributos de live region

● Atributos de drag and drop

● Atributos de relaciones

Estados & Propiedades

Page 72: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

WAI ARIA

Atributos de componente

- aria-autocomplete- aria-checked (state)- aria-disabled (state)- aria-expanded (state)- aria-haspopup- aria-hidden (state)- aria-invalid (state)- aria-label

- aria-level- aria-multiline- aria-multiselectable- aria-orientation- aria-pressed (state)- aria-readonly- aria-required- aria-selected (state)

- aria-sort- aria-valuemax- aria-valuemin- aria-valuenow- aria-valuetext

Estados & Propiedades

Page 73: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<input

id=”product”

type=”text”

name=”as_word”

placeholder=”iphone 5”

class=”autocomplete”

data-side=”bottom”

data-align=”left”

aria-autocomplete=”list”

aria-haspopup=”false”

aria-owns=”ch-popover-2”

aria-describedby=”autocomplete-info”>

ejemploestados y propiedades: autocomplete

www.chico-ui.com.ar

Page 74: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<input

id=”product”

type=”text”

name=”as_word”

placeholder=”iphone 5”

class=”autocomplete”

data-side=”bottom”

data-align=”left”

aria-autocomplete=”list”

aria-haspopup=”true”

aria-owns=”ch-popover-2”

aria-describedby=”autocomplete-info”>

ejemploestados y propiedades: autocomplete

www.chico-ui.com.ar

Page 75: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<ul aria-expanded=”false” aria-hidden=”true”

id=”ch-expandable”>

<li>Collapsible</li>

<li>Collapsible</li>

<li>Link</li>

<li>Collapsible</li>

<li>Collapsible</li>

</ul>

ejemploestados y propiedades: aria-hidden y aria-expanded

www.chico-ui.com.ar

Page 76: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<ul aria-expanded=”true” aria-hidden=”false”

id=”ch-expandable”>

<li>Collapsible</li>

<ul>

<li>Link 1</li>

<li>Link 2</li>

<li>Link 3</li>

</ul>

<li>Collapsible</li>

<li>Link</li>

<li>Collapsible</li>

<li>Collapsible</li>

</ul>

ejemploestados y propiedades: aria-hidden y aria-expanded

www.chico-ui.com.ar

Page 77: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Atributos de regiones “en vivo”

- aria-atomic- aria-busy (state)- aria-live- aria-relevant

WAI ARIA Estados & Propiedades

Page 78: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Atributos de Drag and drop

- aria-dropeffect- aria-grabbed (state)

Drag and drop interaction ideas

WAI ARIA Estados & Propiedades

Page 79: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Atributos de relaciones

- aria-activedescendant- aria-controls- aria-describedby- aria-flowto- aria-labeledby- aria-owns- aria-posinset- aria-setsize

Estados & PropiedadesWAI ARIA

Page 80: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

<input

id=”product”

type=”text”

name=”as_word”

placeholder=”iphone 5”

class=”autocomplete”

data-side=”bottom”

data-align=”left”

aria-autocomplete=”list”

aria-haspopup=”true”

aria-owns=”ch-popover-2”

aria-describedby=”autocomplete-info”>

<p class=”ch-form-hint” id=”autocomplete-info”> This is working with the MercadoLIbre API</p>

ejemploestados y propiedades: autocomplete

Page 81: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Soporte de Browsershttp://stevefaulkner.github.io/html-mapping-tests/

Page 82: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina
Page 83: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Recursos

Page 84: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Questions?

Page 85: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Thank you :)

Page 86: Pensando en Accesibilidad - Shift7 - Córdoba, Argentina

Hernán Garzón de la Roza

@chertopjanov