Tableless - Desenvolvimento inteligente com Padrões Web

14/04/2011
Acessibilidade

Documentos acessíveis com ARIA em HTML5

A preocupação com acessibilidade tem aumentado gradativamente a cada nova versão do HTML e CSS, em vista de atender cada vez mais os usuários que possuem alguma deficiência.

Por


A reestruturação do HTML para sua versão 5 propõem elementos mais semânticos. Porém, as novas tags do HTML5 não são suficientes para permitir que os documentos sejam corretamente acessíveis a softwares leitores de tela.

O comportamento dos novos elementos ainda não é reconhecido por estes programas e o conteúdo da página pode não ser interpretado de forma correta. Em alguns testes que fiz com o conhecido leitor de telas JAWS, ele para de interpretar o conteúdo da página logo após o título.

O HTML continua a possui limitações de acessibilidade e, como é cada vez mais utilização para construir aplicações web, é cada vez mais necessária a supressão destas dificuldades para adequar o reconhecimento do conteúdo à tecnologias assistivas.

Para atender esta demanda de acessibilidade e tecnologias assistivas, o grupo Web Accessibility Initiative (WAI) do W3C tem desenvolvido uma tecnologia complementar para o HTML5 chamada Accessible Rich Internet Application ou simplesmente ARIA.

O ARIA provê uma ontologia de funções, estados e propriedades que definem elementos acessíveis de interface. Ele estende a semântica do HTML provendo informações sobre widgets, estruturas e comportamentos, de modo a permitir que tecnologias assistivas reconheçam e transmitam informações adequadas.
Neste artigo abordaremos um dos conceitos básicos do ARIA: roles.

Roles

Como os leitores de tela não reconhecem novas tags do HTML5, é preciso informar qual o papel de cada tag, ou seja, qual o tipo de informação que ela estará representando. E para isso, o ARIA possui o atributo

1
role

, que possui um conjunto definido de valores para representar cada tipo de informação. O ARIA define

1
roles

abstratas (apenas para definição de conceitos gerais, não devem ser utilizadas), de widget (elementos de formulário, em sua maioria), de estrutura de documento e de landmark (áreas onde o usuário pode encontrar acesso rápido, como navegação, busca, etc.)

Exemplo

O exemplo abaixo mostra o fragmento de uma página em HTML5 utilizando uma estrutura trivial de um blog. Com este código, se a página fosse acessada por um leitor de tela, o conteúdo não seria interpretado.

Nome do Site

Título 1

Neste espaço pode ser inserido um formulário.

Um post do blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit...

Outro post do blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit...
Informações do footer.

Fazemos, então, a aplicação das

1
roles

nos seguintes elementos:

  • header: role=”banner”. Define uma região que possui, principalmente, conteúdo de orientação do site e não conteúdo específico da página.
  • nav: role=”navigation”. Define uma coleção de elementos de navegação (geralmente links) para navegar no documento ou em documentos relacionados.
  • section: role=”main”. Define o conteúdo principal do documento.
  • div: role=”application”. Declara uma região para uma aplicação web, geralmente contendo formulários, em oposição a um simples documento.
  • article: role=”article”. Define uma seção de uma página que consiste em uma composição que forma uma parte independente do documento.
  • aside: role=”complementary”. Define uma seção de suporte do documento para complementar o conteúdo principal.
  • footer: role=”contentinfo”. Define uma região que contém informações sobre o documento.

Com isso, nosso exemplo fica dessa forma:

Nome do Site

Título 1

Neste espaço pode ser inserido um formulário.

Um post do blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit...

Outro post do blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit...
Informações do footer.

Com estas marcações, os leitores de tela poderão informar o conteúdo que o usuário irá encontrar em cada seção do código. Esta é apenas uma das aplicações do ARIA, que possui outras propriedades para permitir que elementos interativos sejam acessíveis e interoperáveis.

Para saber mais

Por Talita Pagani

Talita Pagani, 24 anos, mora em Bauru, interior de SP. Trabalha como web designer desde 2005, mas começou a se interessar pela área em 2001. É graduada em Ciência da Computação. Apaixonada por usabilidade, design de interface e padrões web.

http://www.twitter.com/talitapagani

Veja os outros posts de

  • http://@luizpaulo165 Luiz Paulo

    O artigo está fabuloso parabéns!
    Só que não vi diferença entre os exemplos. Será que você poderia explicar melhor. =D

  • http://ferrari.eti.br Carlos André Ferrari

    Oi talita,

    muito bom o artigo, porém, o segundo exemplo (que deveria contar as roles) está identico ao primeiro

    []‘s

  • http://www.klauslaube.com.br Klaus Laube

    Pois é, o Carlos tem razão… acredito que o segundo exemplo esteja com problemas.

    De qualquer forma, um post muito esclarecer. Parabéns!

  • Talita Pagani

    Olá pessoal,

    Estamos trabalhando para corrigir o problema do segundo exemplo.

    :)

  • Pingback: HTML5 Blog on: Evelling Castro: Documentos acessíveis com ARIA em HTML5 | MiloRiano: Computers news, tips, guides...

  • http://www.planodesaudeempresa.inf.br/ ivan

    Gosto muito de design e otmizaçao

  • http://www.planodesaude.inf.br/ ivan

    O artigo e muito bom e confiavel

  • http://www.ortense.com.br Marcus Ortense

    Otimo artigo, meus parabens!
    []‘s

  • http://www.pilatesdf.com.br Perry Werneck

    Excelente artigo! Parabéns.

    Sabe se todos os navegadores funcionam legal com essas tags? Safari, chrome, firefox no mac e opera no android funcionaram 100% aqui, porém, o IE é sempre uma dúvida. (-:

  • Douglas Iga

    Muito bom! Parabéns :D

  • http://tcelestino.com.br Tiago Celestino

    Para entender melhor, basta pegar o jQuery Mobile e olhar a estrutura, eles usaram o “role” para ditar as regras de arquitetura dos códigos.

  • http://www.paespedro.com.br Paespedro

    Tenho aplicado ARIA nos projetos que participo assim que descobri sua existência. Acessibilidade é algo extremamente importante mas que poucos aplicam de fato (nem o mínimo).
    Sobre os exemplos no seu segundo exemplo faltou colocar os roles.