A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Laboratório de Informática Formulários em HTML

Apresentações semelhantes


Apresentação em tema: "Laboratório de Informática Formulários em HTML"— Transcrição da apresentação:

1 Laboratório de Informática Formulários em HTML
Bruno C. de Paula Laboratório de Informática Formulários em HTML 1º Semestre 2010 > PUCPR > BSI

2 Formulários mal construídos podem mudar o mundo!
25/03/2017 Cédula das eleições americanas de 2000 Eleições americanas de 2000 Formulários mal construídos podem mudar o mundo!

3 Resumo da aula Na aula hoje, nosso objetivo é aprender a criar formulários em HTML 4 e 5; Hoje, vamos nos preocupar apenas com a interface do formulário, o que permite que o usuário interaja com o documento; Em situações reais, para um formulário fazer sentido, será necessária a utilização associada de uma linguagem cliente como JavaScript ou no servidor como PHP; Também deixaremos claro que nada impede o uso de forms HTML5 já!

4 Resumo da aula Deveremos aceitar que nossos formulários sempre deverão ser construídos de maneira acessível; Começaremos a entender também que a criação de formulários envolve conceitos das áreas: Projeto de Formulários; Usabilidade; Validação de Formulários; Psicologia Cognitiva; Etc...

5 Material extra referente ao assunto da aula

6 Tags HTML referenciadas na aula (em Português –site Referenciando)
Contâiner de formulário: <form>; Rótulo de item de formulário: <label>; Botão: <button>; Elemento de entrada de dados: <input>; Caixa de texto multilinha: <textarea>. Caixa de seleção: <select>; Opção de um select: <option>;

7 Tags HTML referenciadas na aula (em Português –site Referenciando)
Grupo de opções em um select: <optgroup>; Agrupamento de itens de formulário: <fieldset>; Legenda de um grupo de itens de formulário: <legend>;

8 Tags HTML referenciadas na aula (em Inglês – site SitePoint)
Contâiner de formulário: <form>; Rótulo de item de formulário: <label>; Botão: <button>; Elemento de entrada de dados: <input>; Caixa de texto multilinha: <textarea>. Caixa de seleção: <select>; Opção de um select: <option>;

9 Tags HTML referenciadas na aula (em Inglês – site SitePoint)
Grupo de opções em um select: <optgroup>; Agrupamento de itens de formulário: <fieldset>; Legenda de um grupo de itens de formulário: <legend>;

10 Propriedades CSS referenciadas na aula (em Inglês –site SitePoint)
Bordas: border-width: largura da borda; border-style: estilo da borda; border-color: cor da borda. Determinar a cor da letra e o fundo: color:cor do elemento; background-color: cor de fundo; background-image: imagem de fundo; width: largura de um elemento;

11 Ponto chave da aula! 25/03/2017 Fonte: Página 173 do Beggining CSS
A interface dos elementos de formulário é diferente em cada navegador!

12 25/03/2017 Ponto chave da aula: Renderização padrão em navegadores diferentes é sempre diferente. Itens NUNCA vão ficar exatamente iguais. Fonte da imagem:

13 CSS resolve parcialmente este problema!
25/03/2017 CSS resolve parcialmente este problema! Teremos uma aula dedicada à sobre formatação de formulários. Não resolve totalmente pois problemas de margem, espaçamento, etc, persistem.

14 A tag <form> Formulário (tag <form>):
contâiner para uma quantidade ilimitada de componentes de interação com o usuário. Aceita um número limitado de tipos de componentes diferentes. <FORM id="form1" action="url" method=“post" > <!--...Coloque seus controles aqui... --> </FORM>

15 <fieldset>: Conjunto de campos;
25/03/2017 <fieldset>: Conjunto de campos; <legend>: Legenda dos fieldset; <label>: Rótulo de item de formulário; <input type=“text”>: Caixa de texto; <input type=“submit”>: Botão de envio; accesskey: Tecla de acesso; <form action="http://tinyurl.com/form2009li" id="f1"> <fieldset> <legend>Dados Pessoais</legend> <label>Nome: <input type="text" name="n" id="n" accesskey="n" /> </label> <label for="i" accesskey="i" title="Idade em anos"> <input type="text" name="i" id="i" value="18" maxlength="3" size="3" /> <input type="submit" /> </fieldset> </form>

16 Tipos de componentes de formulário no HTML Versão 4
25/03/2017 1 ou mais tags por componente; Limitadíssimos!! Cada componente é representado por uma ou mais tags; Por exemplo, uma caixa de texto de uma linha é representada pela tag: <input type="text" id="txt1" name="txt1" /> Uma caixa de seleção com duas opções é representada por: <select id="s1" name="s1"> <option>Opcao1</option> <option>Opcao2</option> </select> Todo controle deve ter um nome (propriedade name) e um valor (propriedade value); O valor pode mudar conforme interação com o usuário.

17

18

19 Tipos de componentes do HTML Versão 5
Ainda em discussão! É importante conhecer o futuro! Vamos usar o Navegador Opera para testá-las; Opera Versão Portátil em:

20

21 Atributos essenciais dos componentes
25/03/2017 Atributos essenciais dos componentes Atributo id: identifica o controle para o cliente web / JavaScript; Atributo name: identifica o controle para o servidor web; Atributo value: indica o valor do controle e pode mudar; Atributo type: indica o tipo de controle;

22 Criar um formulário (siga esta receita)
1) Definir o contâiner de formulário <form>; 2) Definir o action do formulário, ou seja, para onde ele vai; 3) (opcional) Definir o método de envio do formulário (GET ou POST); 4) (opcional) Delimitar os grupos de itens através de <fieldset>; 5) (opcional) Usar uma legenda para cada grupo <legend>;

23 Criar um formulário (siga esta receita)
6) (opcional) Definir um rótulo para cada item de formulário <label>; 7) Criar o item de formulário associado ao rótulo <input>, <button>, etc. 8) (acessibilidade) Definir teclas de acesso, através do atributo accesskey; 9) Definir o botão de submissão; 10) CSS: Formatar o formulário.

24 Exemplo de formulário Vamos começar com um formulário bastante simples; Ao clicar no botão cadastrar, os dados são enviados para a página:

25 E vamos evoluir para o formulário a seguir...

26 1) Definir o contâiner de formulário (<form>)
25/03/2017 25/03/2017 1) Definir o contâiner de formulário (<form>) Não mostra nada! Todos os componentes de formulário devem ser colocados dentro do elemento <form>. <form> </form>

27 2) Definir o action do formulário, ou seja, para onde ele vai;
25/03/2017 Troque o action pelo action que você precisa! O formulário ao ser enviado, submete os dados para a página indicada pelo atributo action; URL: <form action="http://www.brunocampagnolo.com/2010_1/testform/"> </form>

28 3) (opcional) Definir o método de envio (GET ou POST)
Método GET: envio das informações pela barra de endereços; visível; limitado a cerca de 2000 caracteres; Método POST: envio das informações via cabeçalho HTTP; ilimitado (teórico).

29 métodos GET e POST servidor web cliente web

30 cliente web

31 No método GET, a informação é passada via barra de endereços

32 As vars são separadas por &
25/03/2017 As vars são separadas por &

33 25/03/2017 Na PUCPR, aperte F12 para exibir o Firebug! No método POST, a informação só pode ser vista com ferramentas especiais (Firebug)

34 25/03/2017 4) (opcional) Delimitar os grupos de itens através de <fieldset>; <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset></fieldset> </form>

35 5) (opcional) Usar uma legenda para cada grupo <legend>;
25/03/2017 5) (opcional) Usar uma legenda para cada grupo <legend>; <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset> <legend>Obrigatorio</legend> </fieldset> <legend>Opcional</legend> </form> 25/03/2017

36 25/03/2017 25/03/2017 6) (opcional) Definir um rótulo para cada item de formulário <label>; <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> </fieldset> <legend>Opcional</legend> </form> O atributo for deve ter como valor o id do componente associado;

37 Especifica um rótulo que estende a área de foco do elemento;
25/03/2017 25/03/2017 <label> Especifica um rótulo que estende a área de foco do elemento; Evita tiro ao alvo. Permite a definição formal de rótulos para itens do formulários; Quando o usuário clica no rótulo, o item de formulário é selecionado ou checado. Aumentam a área útil de seleção de um item de formulário; Lembre-se: caixas de texto não tem rótulos associados por padrão! Útil para melhorar a acessibilidade e usabilidade de seu formulário; Essencial para criar formulários da maneira certa, principalmente quando você usar botões de rádio e caixas de checagem! Associado à tag <label>. <label>Nome:<input type="text" name="nome"/></label> <label for="idade">Idade:</label> <input type="text" name="idade" id="idade"/> Observe que há duas maneiras de especificar o rótulo. Na primeira, tanto o controle quanto o rótulo estão dentro da tag <label>. Na segunda, a associação é feita pelo atributo id. A segunda maneira é mais usual.

38 Com <label>: Área clicável em roxo Sem<label>:

39 7) Criar o item de formulário associado ao rótulo
25/03/2017 Vamos criar uma caixa de texto através da tag input com atributo type = text; Principais atributos para as caixas de texto de uma linha e caixa de senha (tag <input>) Ver: name: nome, usado na submissão; id: identificador, usado em Javascript e associação com rótulos; size: tamanho aparente em número de caracteres; maxlength: número máximo de caracteres permitidos na digitação; value: valor padrão quando a página é carregada; readonly: somente leitura, não permite edição; disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT).

40 25/03/2017 <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" /> </fieldset> <legend>Opcional</legend> </form>

41 O atributo for deve ter como valor o id do componente associado;

42 8) (acessibilidade) Definir teclas de acesso (atributo accesskey)
25/03/2017 8) (acessibilidade) Definir teclas de acesso (atributo accesskey) Firefox: SHIFT + ALT + TECLA; IE: ALT + TECLA; Cuidado com conflitos! Firefox 2.0 and Access Keys Discussão sobre teclas de acesso no Firefox Avaliador de Acessibilidade https://www.governoeletronico.gov.br/acoes-e-projetos/e-MAG/ases-avaliador-e-simulador-de-acessibilidade-sitios Recomendações acessibilidade <form action="http://tinyurl.com/form2009li"> <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> </form>

43 9) Definir o botão de submissão
25/03/2017 Ao clicar no botão de submissão, os dados são enviados para a página indicada pelo atributo action do form; Observe que a página é perdida ao clicar no botão. <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> <input type="submit" value="Cadastrar" /> </form>

44 Resultado 25/03/2017 <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> <input type="submit" value="Cadastrar" /> </form>

45 Evoluindo o formulário

46 Caixa de senha 25/03/2017 <input type="password" name="senha"
id="senha" value="12345" />

47 Botão de rádio Apenas uma opção de cada vez;
25/03/2017 Apenas uma opção de cada vez; O atributo name agrupa os controles; Botões de rádio Permite a seleção de apenas uma opção dentro de um conjunto de opções disponíveis; Mutuamente exclusivos: quando um é selecionado os outros não podem estar selecionados; No Windows são redondos; Nomes alternativos: radio button; Cada grupo de botões de rádio tem que ter o mesmo nome (atributo name). O atributo checked indica se está selecionado. O que diferencia os botões de rádio são os atributos ID e value. Principais atributos para botões de rádio (tag <input type=“radio”>) Ver mais em: name: identificador do botão de rádio; value: valor associado a cada botão de rádio, por padrão é o valor “on” (ligado); checked: checa o botão de rádio por padrão e reflete o estado de checagem. Para um mesmo grupo de botões de rádio, apenas uma opção pode estar marcada por padrão; disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). <input type="radio" name="sexo" id="masculino" value="1" checked="checked" /> <label for="masculino">Masculino</label> name="sexo" id="feminino" value="2" /> <label for="feminino">Feminino</label>

48 Caixa de checagem Caixas de checagem Chaves do tipo ligado/desligado;
25/03/2017 Caixas de checagem Chaves do tipo ligado/desligado; Funciona como se fosse um tipo lógico (verdadeiro / falso); No Windows, são quadrados; Nomes alternativos: checkbox; O atributo checked indica se está marcado: Marcado: checked igual a true; Não marcado: checked igual a false; Em uma mesma página, as caixas de checagem podem ter o mesmo nome, mas não há agrupamento de checkbox. O que diferencia as caixas de checagem são os atributos ID e value. Principais atributos para caixas de checagem (tag <input type=“checkbox”>) Ver mais em: name: identificador da caixa de checagem; value: especifica o valor associado à checkbox quando é checada. Por padrão (se não especificar o valor do atributo), o valor é on; checked: valor que especifica se a checkbox está ou não checada por padrão. disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). <input type="checkbox" name="receberAtualizacoes" id="receberAtualizacoes" checked="checked"/> <label for="receberAtualizacoes"> Receber atualizacoes </label>

49 Diferença entre caixa de checagem e botão de rádio
Só pode uma opção de cada vez: Pode selecionar mais de uma opção: Formulários

50 Caixa de envio de arquivos
25/03/2017 Principais atributos para as caixas de texto de mais de uma linha (tag <input type=“file”>) Todos os demais atributos de textfield, com restrição no atributo value; accept: Lista de tipos de arquivos aceitos pela caixa de envio de arquivos: text/html, image/png, image/gif, video/mpeg, text/css, audio/basic; Atributo ignorado pelos navegadores atuais. <label for="foto">Foto:</label> <input type="file" id="foto" name="foto" />

51 Caixa de texto multilinha
25/03/2017 cols e rows determinam o número de colunas e linhas; <label for="observacoes">Observacoes:</label><br /> <textarea cols="30" rows="5">Digite aqui</textarea> Principais atributos para as caixas de texto de mais de uma linha (tag <textarea>) Ver: name: identificador da textarea; cols: determina o número de colunas que a checkbox vai apresentar; rows: determina o número de linhas que a checkbox apresenta; disabled: inativo, fica em cinza; readonly: somente leitura, não permite edição.

52 Caixa de listagem <select> é o container;
25/03/2017 <select> é o container; Cada opção é um <option>. Principais atributos para menus (tag <select>) <select> é o Contâiner pai de <option> e <optgroup>; Ver mais em: name: identificador do select; size: número de itens vistos pelo usuário so mesmo tempo. Se for 1, é criado um menu pull-down, se for maior, é criado um menu de rolagem. multiple: permite que o usuário selecione mais de um item do menu. disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). Principais atributos para opções de menu (tag <option>) <option> define cada opção; Ver mais em: selected: permite definir quais são as opções marcadas por padrão. Semelhante ao checked do radio e do checkbox. value: valor associado ao item. Após o envio do formulário, é o value que é submetido para o cgi/php/etc; label: texto que é exibido em cada opção. Ignorado pelo Firefox; <label for="corPredileta">Cor predileta:</label> <select id="cor" name="cor"> <optgroup label="Primarias"> <option>Azul</option> <option selected="selected">Vermelho</option> </optgroup> <optgroup label="Outras"> <option>Rosa</option> <option>Salmao</option> </select>

53 Resultado 25/03/2017 <form action="http://www.brunocampagnolo.com/2010_1/testform/"> <p> <legend>Obrigatorio</legend> <fieldset> name="nome" <input type="text" <label for="nome">Nome:</label> accesskey="n" /> value="Jamanta" id="nome" </p> name="senha" <input type="password" id="senha" value="12345" /> name="sexo" id="masculino" value="1" <input type="radio" <label for="masculino">Masculino</label> checked="checked" /> <label for="feminino">Feminino</label> name="sexo" id="feminino" value="2" /> </fieldset> <legend>Opcional</legend> name="receberAtualizacoes" <input type="checkbox" <label for="receberAtualizacoes"> checked="checked"/> id="receberAtualizacoes" </label> Receber atualizacoes <input type="file" id="foto" name="foto" /> <label for="foto">Foto:</label> <textarea cols="30" rows="5">Digite aqui</textarea> <label for="observacoes">Observacoes:</label><br /> <optgroup label="Primarias"> <select id="cor" name="cor"> <label for="corPredileta">Cor predileta:</label> </optgroup> <option selected="selected">Vermelho</option> <option>Azul</option> <option>Salmao</option> <option>Rosa</option> <optgroup label="Outras"> </select> <input type="reset" value="Limpar" /> <input type="submit" value="Cadastrar" /><br /> </form>

54 Dicas para construção de formulários
1) Nunca esqueça de colocar rótulos (<label>); 2) Dê name e id para todos os elementos; 3) Respeite a diferença entre readonly e disabled; 4) Gere a ordem de tabulação (taborder) quando necessário; 5) A tecla de atalho (accesskey) é obrigatória para que seu sistema seja utilizável sem teclado. 6) O atributo title é uma ótima alternativa para exibição de uma dica visual ou para ajudar a navegação em um navegador não visual. Formulários

55 Diferença entre atributo disabled e atributo readonly
disabled: deixa o elemento desabilitado (texto em cinza). readonly: impede a edição do elemento, mas ele não fica com o texto “em cinza”. Exemplo: <input type=“text” readonly=“readonly” value=“xxx”/> <input type=“text” disabled=“disabled” value=“yyy”/> 3/25/2017 Formulários

56 Formulários em JavaScript onsubmit x onclick
25/03/2017 O evento onsubmit é chamado quando se clica no botão submit do formulário; É um evento de formulário; Útil para validações de formulário; O evento onclick é para qualquer tipo de botão; É um evento de botão; Exemplos de cada um dos casos a seguir;

57 25/03/2017

58 25/03/2017

59 Referências principais

60 Referências complementares
Firefox 2.0 and Access Keys Discussão sobre teclas de acesso no Firefox Avaliador de Acessibilidade https://www.governoeletronico.gov.br/acoes-e-projetos/e-MAG/ases-avaliador-e-simulador-de-acessibilidade-sitios Recomendações acessibilidade


Carregar ppt "Laboratório de Informática Formulários em HTML"

Apresentações semelhantes


Anúncios Google