Acessibilidade

26 fev, 2015

Já parou para pensar se seu app é acessível?

Publicidade

Como não temos um serviço, vamos demonstrar no label mesmoVivemos em um mundo conectado, onde a todo instante estamos nos comunicando e recebendo diversos tipos de informações. Entretanto, existem algumas “muitas” pessoas que não possuem a mesma acessibilidade que nós. São pessoas que possuem alguma limitação, seja motora, visual ou auditiva, e são usuários tão importantes quanto quaisquer outros. Você já parou para pensar se o seu app está preparado para elas? Avaliou se elas conseguem ter uma boa experiência de usuário?

Muito provavelmente você se encontrou no abismo do seu próprio não. Ainda que o iPhone facilite essa interação de muitas maneiras, esta é a realidade: nós, desenvolvedores, deixamos passar essa etapa mais do que importante, fundamental. Tanto quanto a concepção do produto, devemos encarar a cada dia a nossa parcela de responsabilidade em tornar o mundo como um todo um tanto mais acessível.

Diferentemente do que pode parecer, você não terá muito mais trabalho. Na verdade, toda vez que você cria uma nova view no seu storyboard, essa opção já vem ativada por default, como na imagem abaixo:

acessibilidade

Veja que são poucos itens para nós alterarmos. A primeira opção, “Accessibility”, já diz tudo: é lá que você ativa ou desativa. E, como eu já disse, vem ativado por padrão.

No segundo item, temos “Label”, espaço no qual podemos escrever o nome que o sistema de voz lerá para o usuário, caso seja um com problemas visuais. Se você não colocar nada, o sistema lê, por exemplo, o nome da imagem que podemos ter colocado, algo como “minha_image_busca”. Acho que não é legal, né!? Lembre-se de que isso não vai “sobrescrever” o texto original.

Depois disso, temos o campo “hint”, que é a “dica” usada para descrever uma imagem. Legal, não? Ainda que tenhamos um app só de imagens, podemos descrever cada imagem para que o usuário ouça.

Por último, temos o campo “Traits”, que nada mais é do que opções a grosso modo. Essas opções servem para descrever melhor o que estamos tornando acessível. Se você já testou o “Voice Over”, que é o assistente de acessibilidade, pode notar que ao final ele diz o tipo do objeto. No nosso caso, está selecionado o botão, e isso ajuda o usuário entender se tem ou não alguma interação, como o clique.

Quanto trabalho para tornar nosso app devidamente acessível, não?! Pois é, é isso mesmo, mas não só limitado a isso. Há ainda algumas outras interações que demandam muito mais que ativar essa opções.

Para o conteúdo dinâmico, por exemplo, aquele que estamos recebendo de um servidor, teremos que partir para o código. Ainda assim será simples: vamos demonstrar como ativar acessibilidade em um label criado por código, mas que se aplica a quaisquer outros itens. Como não temos um serviço, vamos demonstrar no label mesmo:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // Por padrão todos os componentes já vêm acessíveis por padrão
    // o que devemos fazer é torná-los mais acessíveis, inserindo
    // mais informações como detalhes, e melhor nomes para serem lidos
    // pelo assistente de voz do iOS
    
    UILabel *labelHardCode = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 150, 40)];
    labelHardCode.text = @"Acessibilidade";
    
    // Habilitamos a opção de tornar acessível, uma vez
    // que estamos criando dinamicamente
    labelHardCode.isAccessibilityElement = YES;
    
    // Dizemos o tipo de campo acessível, no nosso caso um texto
    [labelHardCode setAccessibilityTraits:UIAccessibilityTraitStaticText];
    
    // Lembra a parte do Label ter um nome, poderíamos deixar o texto
    // que fornecemos logo acima, mas por questões didáticas escolhermos
    // colocar um texto de acessibilidade diferente
    [labelHardCode setAccessibilityLabel:@"Acessibilidade levado a sério"];
    
    // aqui colocamos dinamicamente a descrição do nosso texto
    [labelHardCode setAccessibilityHint:@"Dica : Texto que estamos demonstrando como descrever"];
    
    // Adicionamos aqui a nossa label na nossa view
    [self.view addSubview:labelHardCode];
 
}

Simples, não?! Poderíamos fazer o mesmo para um serviço que retorna o nosso texto. Nele, poderíamos pedir para nosso dev back-end enviar uma variável com a dica/descrição do texto que iremos mostrar. Assim, usaríamos “setAccessibilityHint” para inserir a dica.

Complicado? Acho que não, né? Tornar o app acessível está, na verdade, diretamente ligado ao seu engajamento para fazer códigos/apps melhores. Por exemplo, você usa a opção de internacionalização do seu app, ou somente escreve no seu idioma direto no código-fonte “hard coded”? É uma boa prática usar a função NSLocalizedString, que é praticamente deixada de lado. Então, a partir de agora, você já pode deixar de lado a preguiça e fazer! É muito simples. Talvez role um tutorial em outro artigo. =)

Ainda há outras questões a serem tratadas. Por exemplo, quando usamos uma tela modal meio opaca, simulando um “pop-up”. Sem adicionar mais alguns códigos, o usuário simplesmente não conseguirá tocar nela, afinal é somente uma “semitela” por cima da view principal. Teremos mais algumas propriedades para nos ajudar, mas nada muito complicado. Mais 1 ou 2 linhas de código não atrapalham nem atrasam a entrega, certo?

Há outro tipos de “acessibilidade”, como por exemplo deixar todas as fontes em “bold”, alterar a opacidade etc. Tudo isso está na API de acessibilidade, e reforço para você, programador: serão 1 ou 2 linhas a mais.

Não pensem que o responsável por isso é só o programador. Um papel importante nessa concepção do aplicativo é o UX, ou “User Experience”, responsável por tornar o app melhor, com uso mais agradável. Há dicas e informações relevantes na documentação para esse profissional. Então vamos lá, UX, saiba essas informações, gaste mais tempo estudando a melhor maneira de aplicar e cobre seu desenvolvedor para usá-las.

Acessibilidade é um tema que está aí nos dias de hoje, e o mundo do desenvolvimento mobile tem um papel importante para tornar isso realidade. Está praticamente implícito, mas temos deixado de lado, pelo menos até agora. Pensando nisso, você se tornará um programador responsável para aqueles que não têm toda a facilidade de um smartphone por possuir alguma limitação. Com sua ajuda, ele ou ela poderá usar o aplicativo que gosta praticamente igual a como você usa!

Ficou alguma dúvida ou tem alguma sugestão sobre acessibilidade? Deixe seu comentário. Até a próxima!