Técnicas para as WCAG 2.0

Ir para o conteúdo (Pressione a tecla Enter)

-

SCR16: Fornecer um script que avise o utilizador que um limite de tempo está prestes a expirar

Aplicabilidade

Limites de tempo controlados por script.

Esta técnica está relacionada com:

Descrição

O objectivo desta técnica é notificar os utilizadores de que está prestes a terminar o tempo para completar uma interacção. Quando os scripts fornecem uma funcionalidade que tem limites de tempo, o script pode incluir uma funcionalidade para avisar o utilizador de que os limites de tempo estão iminentes e fornecer um mecanismo para solicitar mais tempo. No mínimo 20 segundos antes de ocorrer o limite de tempo, o script fornece uma caixa de diálogo de confirmação que indica que o limite de tempo está iminente, e pergunta ao utilizador se pretende mais tempo. Se a resposta do utilizador for "sim", o limite de tempo é redefinido. Se a resposta for "não", ou se o utilizador não responder, o limite de tempo expira.

Esta técnica envolve limites de tempo definidos através do método window.setTimeout() . Se, por exemplo, o limite de tempo for definido para expirar em 60 segundos, pode definir o limite de tempo para 40 segundos e fornecer a caixa de diálogo de confirmação. Quando a caixa de diálogo de confirmação surge, um novo limite de tempo é definido para os restantes 20 segundos. Ao expirar o "limite do período de tolerância”, é executada a acção que deveria ter sido executada no final do limite de tempo de 60 segundos.

Exemplos

Exemplo 1

Uma página com as cotações da Bolsa utiliza o script para actualizar a página a cada 5 minutos, para garantir que as estatísticas mais recentes permaneçam disponíveis. Vinte segundos antes de o período de cinco minutos expirar, surge uma caixa de diálogo de confirmação a perguntar se o utilizador necessita de mais tempo antes de a página actualizar. Isto permite ao utilizador ter conhecimento da actualização iminente e, se assim o pretender, evitá-la.

Código Exemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"<url>http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</title>">
<html lang="en">
<head>
<title>Stock Market Quotes</title>
<script type="text/javascript">
<!--
function timeControl() {
        // set timer for 4 min 40 sec, then ask user to confirm.
        setTimeout('userCheck()', 280000);
}
function userCheck() {
        // set page refresh for 20 sec
        var id=setTimeout('pageReload()', 20000);
        // If user selects "OK" the timer is reset 
        // else the page will refresh from the server.
        if (confirm("This page is set to refresh in 20 seconds. 
        Would you like more time?"))
        {
        clearTimeout(id);
        timeControl();
        }
}
function pageReload() {
        window.location.reload(true);
}
timeControl();
-->
</script>
</head>
<body>
<h1>Stock Market Quotes</h1>
 ...etc...
</body>
</html>

Testes

Procedimento

Numa página Web que tenha um limite de tempo controlado por um script:

  1. Carregue a página e programe um temporizador com 20 segundos a menos que o limite de tempo.

  2. Quando o temporizador parar, verifique se é apresentada uma caixa de diálogo de confirmação a avisar que o limite de tempo está prestes a expirar.

Resultados Esperados