Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)

24 março, 2006

Validação não pode ser a única forma de boas práticas

Roger Johansson aponta uma confusão nalgumas cabeças que acham que basta que o HTML de um sítio seja válido para terem um sítio que usa boas práticas. Deve acrescentar que até agora só encontrei um sítio de organismo público que validasse e mesmo esse coitado não praticava boas práticas. (Validar é só um passinho...)

Design Meltdown

Este é um daqueles sítios que quem quer aprender a desenvolver sítios web (e eu quero) deve consultar: Design Meltdown.
A sua tabela de conteúdos começa com a utilização de cores e depois passa para os elementos e técnicas de design, passa para os problemas e soluções e finaliza com tutoriais.

A boca fica a salivar!

20 março, 2006

Um blog sobre design, usabilidade e novidades

Um blog português sobre design, ergonomia e com um pouco de humor. A visitar em especial pelas recensões de livros fica em Design Ergonomia

Como Depurar Vistas - RoR

Ferramentas de depuração

A Rails trás um ajudante de depuração que pode usar nas vistas:

<%= debug @user %>

Isto irá produzir uma saída como esta:


--- !ruby/object:User
attributes: 
  name: Jane Loe 
  username: janeloe
  id: "1" 
  password: fc46324eea5eede31c00b9026e5037e162dccda8

Adicionar aos ajudantes

O artigo Rails Plugin para ajudar a depurar vistas descreve um plugin que torna mais fácil abrir uma janela popup similar às Smartys escarrapachando todas as atribuições, sessões, parâmetros e variáveis flash. O plugin deriva de código disponível nas Snippets. Isto é especialmente útil quando se trabalha em conjunto com designers que não têm a mínima ideia do género de informação exportada pelos controladores numa dada vista.

15 março, 2006

Edições Sempre em Pé

As edições Sempre em Pé têm um síte limpo. Salvo alguns pequenos lapsos pouco haverá a alterar para melhorar. Este é um site que não sendo à partida feito para pessoas com dificuldades de leitura, permite que se amplie os respectivos tipos sem perca da informação gráfica existente.

Em relação à conformidade com padrões poderá efectuar-se uma melhoria de forma a que o site cumpra com o que indica.

09 março, 2006

Testar Migrações (RoR)

Qual a forma correcta de testar migrações?

Usar:

rake migrate RAILS_ENV=test

e chega

07 março, 2006

Desenvolver sítios para utilizadores com deficiências cognitivas e dificuldades de aprendizagem

Sumário

Quando se pensa em acessibilidade do conteúdo na web há uma tendência para nos concentrarmos nas pessoas com incapacidades visuais. As pessoas com incapacidades cognitivas e com dificuldades de aprendizagem são frequentemente esquecidas.

O artigo original é do: Juicy Studio, Developing sites for users with Cognitive disabilities and learning difficulties, Este artigo escrito por Roger Hudson, Russ Weakley, e Peter Firminger, examina os tipos de problemas que os visitantes podem encontrar quando usam a web com sugestões profundas e práticas sobre como desenvolver sítios web que incluam as pessoas com incapacidades cognitivas ou com dificuldades de aprendizagem.

Autor: Russ Weakley

Conteúdos

Por Roger Hudson, Russ Weakley, e Peter Firminger

Traduções

Tradução russa
A tradução russa deste artigo é atenciosamente fornecida por Vlad Brown
Tradução sueca
A tradução sueca deste artigo é atenciosamente fornecida por Johan Sundstrom.
Tradução italiana
A tradução italiana deste artigo é atenciosamente fornecida por Livio Mondini.
Tradução filandesa
A tradução filandesa deste artigo é atenciosamente fornecida por Saavutettava.fi.

Introdução

O grupo de dificientes maior na nossa comunidade é o das pessoas com dificiências cognitivas e com dificuldades de aprendizagem, contudo é um grupo frequentemente esquecido em relação à acessibilidade de um sítio web.

As etiquetas de incapacidade cognitiva e dificuldades de aprendizagem, parece englobar um amplo espectro de condições que os responsáveis pelo desenvolvimento da web acham frequentemente difíceis de indentificar ou de tratar as necessidades especificas dos indivíduos ou grupos que normalmente descrevem.

Muitas dificiências distintas podem afectar a capacidade de uma pessoa em aceder a um sítio web e usar a informação nele contida, por exemplo:

  • Dificiência cognitiva, que inclui memória, percepção, resolução de problemas conceptualização e dificiência de atenção. Isto pode resultar de um espectro de condições tais como atraso mental, autismo, danos cerebrais, parkinsonismo, doença de Alzheimer e senilidade.
  • Dificuldades de aprendizagem pode também afectar uma variedade de memória, percepção, resolução de problemas e capacidades de conceptualização. As dificuldades de aprendizagem incluem problemas de leitura como a dislexia, cálculo, deficiências de raciocinio e organização e dificuldades não verbais de aprendizagem. Estas são, por vezes, também associadas à hiperactividade e à dificiência de Atenção.

Para o responsável pelo desenvolvimento da web a situação pode apresentar-se mais complexa pelo facto de que os utilizadores individuais com estas condições podem ter necessidades muito diversas. É comum para indivíduos com problemas cognitivos numa área serem extraordinariamente habilitados noutras áreas. Por exemplo uma pessoa que é um excelente leitor pode ter consideráveis problemas em compreender como é que uma página web é organizada ou ser facilmente distraído por uma pequena imagem animada.

Pode a web tratar das necessidades de todos estes diferentes grupos. Provavelmente sim, mas com sítios web diferentes.

A web pode trazer prazer considerável e ajudar pessoas com diferentes e em alguns casos muito profundas incapacidades cognitivas. O projecto Peepo (já fechado) dava um largo espectro de recursos e ideias para capacitar as pessoas com sérias dificuldades de aprendizagem a navegar e usar a web com independência.

O foco deste artigo é em primeiro lugar sobre como melhorar a web para pessoas que têm capacidade funcional para acederem independentemente e usarem sítios que contenham algum conteúdo textual. Em particular, o artigo sugerem alguns métodos simples que podem melhorar a acessibilidade dos sítios a pessoas que acham difícil ler e usar conteúdo escrito.

Para uma versão mais detalhada deste artigo vá para Uma Fronteira da Acessibilidade: dificiências cognitivas e dificuldades de aprendizagem

1. Trabalhar com conteúdo

1.1 Conteúdo claro e simples

O conteúdo que é bem escrito será fácil para todos acederem incluindo pessoas com dificuldades de aprendizagem ou cognitivas.

  • Assegure-se que a informação está bem organizada.
  • Mantenha o conteúdo curto e simples.
  • Reparta a informação em pequenas porções, com uma ideia chave por parágrafo.
  • Apresente pontos relacionados numa lista em vez de num parágrafo muito extenso.
  • Utilize cabeçalhos com significado.
  • Verifique que não há erros ortográficos ou gramaticais.
  • Explique ou defina os termos técnicos, as abreviaturas e as siglas.

1.2 Comprimento óptimo da linha

A maior parte dos utilizadores da web acham que as linhas muito extensas são difíceis de ler. Para pessoas com problemas de leitura as linhas extensas podem tornar-se numa barreira significativa. À medida que a resolução do ecrã vai aumentando, é possível obter mais e mais caracteres numa linha num determinado tamanho do tipo de letra, contudo o tamanho de tipo de letra óptimo para leitura fácil varia de leitor para leitor. Como resultado é difícil ser definitivo sobre qual será o melhor comprimento de linha, mas como regra geral uma linha não deve exceder os 70 a 80 caracteres e o texto deve ser marginado do lado direito e esquerdo.

1.3 Rios de branco

Muitos utilizadores da web com dificuldades de leitura têm problemas com texto que é alinhado tanto à direita como à esquerda. O espacejamento desigual entre palavras do texto completamente alinhado pode causar "rios espaço em branco" que correm de cima abaixo e tornam a leitura mais difícil e em alguns casos impossível para algumas pessoas. A solução simples é evitar usar texto alinhados dos dois lados (texto justificado).

1.4 Escrita de pirâmide invertida

Um forma simples de tornar o conteúdo mais acessível é usar o estilo da pirâmide invertida na escrita adoptada pela maior parte dos jornais. Começar por um sumário ou pequena introdução do tema e a súmula e depois dar os detalhes de fundo e informação de suporte. Isto permite aos utilizadores determinar rapidamente se há informação em que estejam interessados sem terem de analisar a totalidade da página.

2. Esconder e mostrar conteúdo

Para alguns utilizadores da web, em particular, para aqueles com deficiências cognitivas e dificuldades de aprendizagem grandes quantidades de texto numa página podem tornar-se numa barreira à acessibilidade. Permitir que o utilizador tenha algum controlo sobre a informação que lhe seja apresentada pode reduzir o impacto deste problema potencial. É possível agora dar aos utilizadores a capacidade de escolherem entre uma versão simples ou uma versão detalhada do conteúdo da página de várias formas.

2.1 Conteúdo breve e conteúdo extenso

Este método permite aos utilizadores escolherem entre uma versão abreviada ou uma versão extensa do conteúdo da página em todo um sítio web. Os utilizadores que optarem pela versão abreviada podem navegar no sítio, lerem a versão de texto mais breve de cada página. Se numa determinada página desejarem informação mais detalhada, eles seleccionam a opção da versão e é carregada a versão extensa do conteúdo.

Este método foi usado pelo sítio baseado em Sydney do Guardianship Tribunal. O teste de utilização deste sítio envolveu um largo espectro de utilizadores, incluindo alguns com dificuldades cognitivas e de aprendizagem. Quando percebiam que podiam escolher entre versões breves ou extensas do conteúdo das páginas a maior parte dos utilizadores achavam esta capacidade sem vantajosa. Por exemplo pessoas com problemas de leitura eram capazes de obter a versão abreviada da informação que conseguiam ler e compreender. Os assistentes sociais e os médicos também usavam o conteúdo breve como opção por omissão na sua navegação visto permitir localizar informação que lhes era necessária de forma rápida.

2.2 Expansão das balas

Um método similar usar frases simples ou cabeçalhos como forma de dar uma visão geral do conteúdo. Estas são apresentadas como balas que também servem como as chaves para obter mais informação. Quando o utilizador selecciona uma bala a versão extensa da informação relativa a esse ponto é apresentada na lista de balas.

2.3 Esconder-Mostrar balas

Este método também usa balas para frases simples ou cabeçalhos. Contudo o conteúdo expandido não é mostrado dentro de cada bala. É, de facto, mostrado por baixo da lista completa de balas. Esta opção é melhor para porções de conteúdo extensas.

2.4 Conteúdo de apresentação com diapositivos

Usar a web para fornecer conteúdo informativo para utilizadores com deficiências cognitivas mais sérias poderá exigir uma aproximação diferente. Um método sugerido envolve a apresentação da informação numa apresentação de diapositivos integrada com um diapositivo separado por cada conceito ou assunto. Isto irá permitir que o conteúdo fornecido o seja de forma clara, fácil de aceder em bocados que o utilizador pode percorrer à sua própria cadência.

3. CSS para ajudar na clicabilidade e na legibilidade

Uma das principais vantagens das «Cascading Style Sheets» (CSS) é que podem ser usadas para manipular a apresentação do conteúdo sem afectar a estrutura do conteúdo. Eis alguns métodos simples que usam CSS para tornar o conteúdo mais acessível para pessoas com dificiências cognitivas e dificuldades de aprendisagem.

3.1 Aumentar entrelinha

Alguns utilizadores acham que um aumento do espaço entre linhas de texto num parágrafo pode ajudar na legibilidade.

3.2 Aumentar margem após parágrafo

Normalmente há uma linha completa de intervalo entre parágrafos num bloco de conteúdo. Aumentar este intervalo para 1,5 ou 2 linhas de espaço pode ajudar a legibilidade para alguns utilizadores.

3.3 Efeito de pairar sobre ligações

Alguns utilizadores têm dificuldade em distinguirem ligações de outros conteúdos. As ligações podem receber um efeito de pairar (do rato) que as faça mudar de cor quando o rato paira por cima delas.

3.4 Borda inferior nas ligações

O sublinhado tradicional em conteúdo textual pode tornar difícil a leitura de caracteres com pernas abaixo da linha de escrita (como por exemplo pq e semelhantes) para alguns utilizadores. Retirando o sublinhado por omissão das ligações e usando a técnica CSS de borda inferior para sublinhar a ligação, pode controlar a distância entre o texto e o sublinhado.

3.5 Aumentar área activa nas ligações

Para alguns utilizadores, particularmente para aqueles com dificuldades motoras, clicar nas ligações é difícil. Ao usar-se CSS, a área alvo das ligações pode ser aumentada.

3.6 Efeito de pairar em parágrafos, itens de lista e células de tabela

Alguns utilizadores com dificuldades de leitura acham difícil saber onde vão na página. Ao aplicar efeitos de pairar a parágrafos, itens de lista e linhas de tabelas permite-lhes usar o rato como dispositivo de marcação de lugar.

Infelizmente o Internet Explorer não suporta o efeito de pairar em parágrafos, listas ou linhas de tabela. Contudo se achar que isto é uma opção valiosa para os seus utilizadores pode ser usado JavaScript para simular este efeito no Internet Explorer (usando o IE7 de Dean Edwards).

Parágrafos sublinhadoss

Outro método para utilizadores com dificuldades de leitura envolve sublinhar o conteúdo em parágrafos activos. A ideia é fornecer uma régua virtual que fica por baixo de cada linha de texto permitindo ao utilizador manter os olhos na linha que estejam a ler de modo mais fácil.

Um dos possíveis problemas levantados por este método é que alguns utilizadores podem confundir o parágrafo sublinhado com a apresentação por omissão de uma ligação. Usar CSS para dar um estilo diferente de sublinhado por exemplo uma linha tracejada vermelha, pode reduzir o risco de confusão potencial.

3.8 Cores reservadas

Alguns utilizadores acham que o conteúdo é mais fácil de ler se as cores de texto e fundo forem invertidas, sendo o conteúdo da página escrito com uma cor leve e o fundo com uma cor escura.

3.9 Reduzir luminosidade do fundo

Alguns utilizadores acham que as páginas com cor de fundo branca produzem demasiada luminosidade tornando-as difíceis de ler. Pode tratar-se disto usando uma cor ligeiramente fora do branco ou um cinza claro para o fundo o qual irá reduzir a quantidade de luminosidade.

4. Controlo pelo utilizador do conteúdo e da apresentação

As várias ideias esboçadas neste artigo podem ser usadas para permitir que a cada utilizador de um site seja apresentada uma página web da forma que lhe seja mais útil.

Quando se combina CSS com JavaScript ou processamento do lado do servidor é possível a um responsável pelo desenvolvimento incluir algumas das sugestões de melhoria de acessibilidade (isto é, borda de baixo nas ligações e área de ligação aumentada) como parâmetros por omissão de apresentação de página, enquanto se permite aos utilizadores controlarem outros elementos da página tais como:

  • Conteúdo: versões extensas e abreviadas da informação.
  • Tamanho do tipo de letra: capacidade de aumentar ou diminuir o tamanho do texto.
  • Legibilidade: alterar o espaço entre parágrafos e/ou aplicar efeitos de rato a pairar sobre parágrafos.
  • Temas de cor: dar um intervalo de opções que inclua a inversão de cores e a redução de luminosidade.
  • Line-length (comprimento da linha): para arranjos sobre o alto ou sobre o baixo.
  • Line-height (entrelinha) : dar uma gama de opções para alteração de entrelinha de texto e ligações.

Conclusão

Estes exemplo não são "a" resposta definitiva de todos os problemas de utilizadores com deficiências cognitivas e dificuldades de aprendizagem quando acedem a um sítio web. Em vez disso, são sugestões para responsáveis pelo desenvolvimento. Uma pessoa que esteja interessado em tornar o seu conteúdo mais acessível para uma audiência mais alargada poderá querer experimentar. Embora algumas das técnicas tenham sido testadas com utilizadores que têm dificuldades cognitivas e de aprendizagem, outras são simples ideias teóricas ou meros palpites.

Leitura adicional:

05 março, 2006

ApplicationController.rb e Reutilização de Código

Os ficheiros dos helpers numa aplicação Rails devem ser usados para albergar código que se queira partilhar com vários ficheiros de vistas.

Quando queremos partilhar código entre controladores devemos colocar os métodos a partilhar em ApplicationController (app/controllers/application.rb). Não se pode esquecer tornar esses métodos privados de forma a não poderem ser chamados como acções.

Outra hipótese é colocar esses métodos num módulo e depois chamar esse módulo onde necessário como em:


# lib/login.rb
module Login
  def utilizador_actual
    # código para determinar utilizador actual
  end
end

# app/controllers/comments_controller.rb
class CommentsController < ApplicationController
  include Login

  def edit
    utitlizador = utilizador_actual
  end
end

Como tornar maísculas todas as iniciais de uma frase em Ruby

"isto é uma frase de teste.".titleize

De que resultará algo como:

Isto é Uma Frase De Teste."