SVR1: Implementar redireccionamentos automáticos no lado do servidor em vez de no lado do cliente | Técnicas para as WCAG 2.0
Anterior: Técnica SCR37
Próximo: Técnica SVR2
SVR1: Implementar redireccionamentos automáticos no lado do servidor em vez de no lado do cliente
Tecnologias do lado do servidor, incluindo linguagens de scripts do lado do servidor e ficheiros de configuração do servidor com URLs ou padrões de URL para redireccionamentos.
Critério de Sucesso 3.2.5 (Alteração a Pedido)
Como Cumprir o 3.2.5 (Alteração a Pedido)
Noções sobre o Critério de Sucesso 3.2.5 (Alteração a Pedido)
O objectivo desta técnica é evitar a confusão que possa ser originada quando duas novas páginas são carregadas em rápida sucessão, porque uma página (a pedida pelo utilizador) redirecciona para outra. Alguns agentes de utilizador suportam a utilização do elemento meta HTML para redireccionar o utilizador para outra página após um determinado número de segundos. Isto torna a página inacessível a alguns utilizadores, especialmente utilizadores com leitores de ecrã. As tecnologias do lado do servidor fornecem métodos para implementar redireccionamentos de forma a não confundir os utilizadores. Um ficheiro de configuração ou um script do lado do servidor pode fazer com que o utilizador envie uma resposta HTTP apropriada com um código de estado no intervalo 3xx e um cabeçalho Localização com outro URL. Quando o browser recebe esta resposta, a barra de localização muda e o browser faz um pedido com o novo URL.
Exemplo 1: JSP/Servlets
Em Java Servlets ou Java Server Pages (JSP), os programadores podem utilizar HttpServletResponse.sendRedirect(String url).
Envia uma resposta com um código de estado 302 ("Encontrado") e um cabeçalho Localização com o novo URL para o agente de utilizador. Também é possível definir outro código de estado com response.sendError(int code, String message) com uma das constantes definida na interface javax.servlet.http.HttpServletResponse como código de estado.
Se uma aplicação utilizar HttpServletResponse.encodeURL(String url) para reescrita de URL, uma vez que a aplicação depende das sessões, deve ser utilizado o método HttpServletResponse.encodeRedirectURL(String url) em vez de HttpServletResponse.sendRedirect(String url). É igualmente possível reescrever um URL com HttpServletResponse.encodeURL(String url) e, em seguida, passar este URL para HttpServletResponse.sendRedirect(String url).
Exemplo 2: ASP
Em Active Server Page (ASP) com VBScript, os programadores podem utilizar Response.Redirect.
O código seguinte é um exemplo mais completo com um código de estado HTTP específico.
Exemplo 3: PHP
Em PHP, os programadores podem enviar um cabeçalho HTTP básico com o método header . O código seguinte envia um código de estado 301 e uma nova localização. Se o estado não for explicitamente definido, a resposta de redireccionamento envia um código de estado HTTP 302.
Exemplo 4: Apache
Os programadores podem configurar o servidor da Web Apache para processar redireccionamentos, tal como no exemplo seguinte.
Utilizar redireccionamentos normais: não danifique o botão de retrocesso! (página em inglês) (Sugestão W3C QA).
HTTP/1.1 Definições do Código de Estado: Redireccionamento 3xx (página em inglês).
HTTP 301 Técnicas de Redireccionamento Definitivo (página em inglês) por Shailesh N. Humbad.
Interface javax.servlet.http.HttpServletResponse (página em inglês) na documentação da API Java Servlets 2.3.
Cabeçalho (página em inglês) no Manual PHP.
Módulo Apache mod_alias (página em inglês) na Documentação do Servidor HTTP Apache Versão 2.2 descreve como os redireccionamentos podem ser especificados no Apache 2.2.
Módulo mod_alias (página em inglês) na Documentação do Servidor HTTP Apache Versão 1.3 (página em inglês) descreve como os redireccionamentos podem ser especificados no Apache 1.3.
Localize cada link ou referência programática a outra página ou página Web.
Para cada link ou referência programática a um URI no conjunto de páginas Web que estão a ser avaliadas, verifique se a página Web referenciada contém um código (por ex., script ou elemento meta) que origine um redireccionamento do lado do cliente.
Para cada link ou referência programática a um URI no conjunto de páginas Web que estão a ser avaliadas, verifique se o URI referenciado não origina um redireccionamento OU origina um redireccionamento do lado do servidor sem um tempo limite excedido.