Introdução ao desenvolvimento de sites web (+) acessíveis

cesperanc.github.io/daws/

Índice

Índice (2)

Índice (3)

Índice (4)

Motivação

Definição de Acessibilidade

Acessibilidade
diz respeito ao meio e aos recursos que potenciam as competências de quem os utiliza, reduzindo o efeito de barreiras existentes.

Número de utilizadores com deficiência

Alguns tipos de deficiência

A acessibilidade como uma ferramenta

Áreas de atuação

Páginas Web

As páginas Web são geralmente baseadas em três linguagens:

HTML

Tags em HTML

Uma tag HTML é composta por elementos como o nome (obrigatório), atributos (opcional) e valor (opcional)

Imagem com a representação das seguintes tags HTML: <label for="teste">Etiqueta de teste:</label><input id="teste" />

Estrutura formal de uma página Web

Uma página Web é composta pela especificação do tipo de documento, um cabeçalho e um corpo.

<!DOCTYPE html> <html> <head> <title>Título da página</title> </head> <body> Conteúdo da página </body> </html>

Estrutura formal de uma página Web (2)

Cascading Style Sheet (CSS)

Exemplo de instruções CSS

No exemplo seguinte é apresentado um conjunto de instruções CSS que define a cor vermelha e o estilo negrito para todos os parágrafos de um documento HTML.

p { color: red; font-weight: bold; }

JavaScript

Dicas práticas: Definições de idioma

<html lang="pt-PT"><!-- Define o idioma do documento para Português --> (...) <span lang="en">Web</span><!-- A palavra "Web" está em Inglês -->

Títulos das páginas

Cabeçalhos

<h1>Nome do site</h1> <h2 class="list-title">Menu principal</h2><ul><li>...</li></ul> <div id="content"> <h1>Título da página</h1> <p>Conteúdo da página</p> </div>

Aumente o tamanho da letra

Herança de tamanhos

Atenção à herança de tamanhos!

body { font-size: 1.6em; /* ±16px */ } h1 { font-size: 2em; /* 1.6em*2em≅3.2em (32px e não 20px) */ }

Espaçamento do texto

A falta de espaço entre linhas pode dificultar a leitura de textos longos:

line-height: normal;

Resultado:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam sed metus justo, id sagittis neque. Donec neque quam, consequat sit amet tincidunt in, semper id est. Integer sed odio ac metus accumsan rutrum elementum et tortor. Proin suscipit condimentum feugiat. Vestibulum placerat, justo sit amet dapibus fringilla, nisi diam laoreet diam, in ullamcorper arcu neque id mi.

Espaçamento do texto (2)

Um espaçamento adequado facilita a transição entre linhas:

line-height: 1.4em;

Resultado:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam sed metus justo, id sagittis neque. Donec neque quam, consequat sit amet tincidunt in, semper id est. Integer sed odio ac metus accumsan rutrum elementum et tortor. Proin suscipit condimentum feugiat. Vestibulum placerat, justo sit amet dapibus fringilla, nisi diam laoreet diam, in ullamcorper arcu neque id mi.

Espaçamento entre parágrafos

O espaçamento entre parágrafos também é importante:

p{ margin-bottom: 0; }

Resultado:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam sed metus justo, id sagittis neque. Donec neque quam, consequat sit amet tincidunt in, semper id est.

Integer sed odio ac metus accumsan rutrum elementum et tortor. Proin suscipit condimentum feugiat. Vestibulum placerat, justo sit amet dapibus fringilla, nisi diam laoreet diam, in ullamcorper arcu neque id mi.

Espaçamento entre parágrafos

O espaçamento facilita a diferenciação de parágrafos:

p{ margin-bottom: 0.5em; }

Resultado:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam sed metus justo, id sagittis neque. Donec neque quam, consequat sit amet tincidunt in, semper id est.

Integer sed odio ac metus accumsan rutrum elementum et tortor. Proin suscipit condimentum feugiat. Vestibulum placerat, justo sit amet dapibus fringilla, nisi diam laoreet diam, in ullamcorper arcu neque id mi.

Alinhamento do texto

ARIA landmark roles

Métodos de navegação alternativos

Métodos de navegação alternativos (2)

Métodos de navegação alternativos (3)

Tabelas

Título das tabelas

<table> <caption>Tabela 1: Avaliações dos alunos por UCs</caption> (...) </table>
2 A utilização do sumário através do atributo summary é desaconselhada no HTML 5 e a descrição da tabela deve ser feita através do caption ou através de uma tag figure que englobe a tabela.

Estrutura formal das tabelas

<table> <caption>Tabela 1: Avaliações dos alunos por UCs</caption> <thead><!-- Células de cabeçalho (...) --></thead> <tfoot><!-- Células de rodapé (opcional) (...) --></tfoot> <tbody><!-- Células de conteúdo (...) --></tbody> </table>

Exemplo de código de uma tabela

<table> <caption>Tabela 1: Avaliações dos alunos por Unidades Curriculares (de 0 a 20 valores)</caption> <thead> <tr> <th scope="col"><span title="Número do aluno">Aluno</span></th> <th scope="col"><span title="UC de Qualidade de Serviços em Rede">QSR</span></th> <th scope="col"><span title="UC de Computação em Ambientes Distribuídos">CAD</span></th> </tr> </thead> <tbody> <tr> <th scope="row">2120915</th> <td>19</td> <td>17</td> </tr> <tr> <th scope="row">2120917</th> <td>18</td> <td>18</td> </tr> </tbody> </table>

Resultado do exemplo anterior

Tabela 1: Avaliações dos alunos por Unidades Curriculares (de 0 a 20 valores)
Aluno QSR CAD
2120915 19 17
2120917 18 18

Mais sobre tabelas

Interpretar uma tabela complexa apenas com recurso à audição pode ser algo bastante difícil pelo que se recomenda que as tabelas sejam simplificadas sempre que possível.

Existem mais algumas instruções HTML para construção de tabelas mais complexas que não foram abordadas. Em caso de necessidade estas opções adicionais podem e devem ser exploradas para facilitar a interpretação dos dados a apresentar.

Imagens

Imagens (2)

Contraste de cores

Estava aqui um texto...

Etiquetas

Agrupamentos em formulários

Tamanho de botões

Ferramentas de acessibilidade

Progressive Enhancement

Testes e validação

Algumas normas importantes

Questões?

Referências

Referências (2)

Source code