Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.1 Formularios
Otros elementos de formularios
Los elementos select y option
Mediante estos elementos podemos construir listas desplegables que permiten
seleccionar un elemento entre los propuestos. Son muy útiles para evitar errores
provocados por la introducción de los datos por parte de los usuarios. Mediante el
atributo selected en los elementos option podemos modificar el elemento
seleccionado por defecto, que si no lo incluimos es el primero. Usando el
atributo size en el select modificamos el número de opciones que se mostrarán.
Podemos agrupar los elementos option usando optgroup para mejorar su
organización.
<form method="POST" action="#">
<p>
<label for="curso">Curso:</label><br>
<select id="curso">
<option value="">Seleccione curso</option>
<optgroup label="ESO">
<option value="1eso">1º de ESO</option>
<option value="1eso">2º de ESO</option>
<option value="1eso">3º de ESO</option>
<option value="1eso">4º de ESO</option>
</optgroup>
<optgroup label="Bachillerato">
<option value="1eso">1º de bachillerato</option>
<option value="1eso">2º de bachillerato</option>
</optgroup>
</select>
</p>
</form>
form{margin:2em;}
select{
padding:1ex;
margin-top:1ex;
background-color:whitesmoke;
}
input:focus{background-color:white;}
El elemento textarea
Es un elemento adecuado para la introducción de textos largos. Podemos emplear el
atributo maxlength para limitar el texto introducido en los controles del formulario.
Su tamaño en HTML se indica en caracteres mediante los atributos rows, filas,
y cols, columnas. Con CSS podremos ajustar mejor el tamaño de los elementos del
formulario.
<form method="POST" action="#">
<p>
<label for="descripcion">Descripción del curso:</label>
<textarea id="descripcion" rows="6" cols="40" maxlength="300"
placeholder="Indique aquí una breve descripción del curso, máximo 300
caracteres."></textarea>
</p>
</form>
form{margin:2em;}
label{
display:block;
margin-bottom:1ex;
}
textarea{
padding:1em;
font-family:georgia, serif;
font-size:16px;
}
El elemento meter
Se emplea para indicar valores numéricos proporcionando, si lo deseamos, rangos de
valores máximo, mínimo, por encima o por debajo de lo esperado, y óptimo. Para
hacerlo usaremos, respectivamente, los atributos max, min, high, low y optimum.
El valor se indica mediante el atributo value. Los valores por encima y por debajo de
lo esperado los representa el navegador de forma gráfica cambiando el color de la
barra. No debe indicarse para valores que indiquen progreso en una tarea, para ello
dispondremos del elemento progress.
form{margin:2em;}
El elemento progress
Muy similar al anterior, se usa para indicar el punto en el que se encuentra un valor que
representa el progreso en una tarea. Se muestra como una barra de progreso cuya
apariencia dependerá del navegador con que se visite la página. Se le puede dar un valor
máximo (por defecto es 1) y el valor en el que se encuentra la tarea. Se recomienda y es
una muy buena práctica, incluir dentro del elemento el valor actual y el máximo, para
proporcionar esta información a los visitantes que accedan a la página con navegadores
antiguos que no reconozcan este elemento.
<form method="POST" action="#">
<p>
<label for="preg">Preguntas contestadas:<br><progress id="preg"
value="32" max="100">32%</progress></label>
</p>
</form>
form{margin:2em;}
label{
display:block;
margin-bottom:1ex;
}
Reto
Ocultar
Vamos a crear un formulario, lo más completo posible, haciendo uso de los elementos y
atributos vistos, que sirva para darnos de alta en una web de búsqueda de empleo. Se
deben incluir controles para recoger los datos personales, siendo el nombre y el correo
electrónico elementos obligatorios. Hay que proporcionar un botón para enviar el
formulario y otro para imprimirlo (no harán nada, solo deben incluirse en el formulario).
</form>
Incluiremos ahora unas sección para que indique en qué sectores busca
empleo, para hacerlo usaremos controles de tipo checkbox, que permiten
seleccionar varios elementos.
<form action="/alta.php" method="post">
<fieldset>
<legend>Datos personales</legend>
[...]
</fieldset>
<fieldset>
<legend>Méritos académidos</legend>
[...]
</fieldset>
<fieldset>
<legend>Sectores en los que desea trabajar</legend>
<ul>
<li>
<label>Educación <input type="checkbox" name="educacion">
</li>
<li>
<label>Tecnología <input type="checkbox" name="tecnologia">
</li>
<li>
<label>Construcción <input type="checkbox" name="construccion">
</li>
<li>
<label>Hostelería <input type="checkbox" name="hosteleria">
</li>
<li>
<label>Industria <input type="checkbox" name="industria">
</li>
<li>
<label>Servicios al hogar <input type="checkbox" name="servicios">
</li>
</ul>
</fieldset>
</form>
Por último, antes de incluir los botones de envío, añadimos los controles
para permitir la inclusión de otros aspectos relevantes.
Usaremos select para seleccionar en un desplegable la comunidad
autónoma preferida para trabajar. Completamos la sección incluyendo un
elemento meter que sirva para indicar la probabilidad de recibir ofertas, en
función de la comunidad autónoma elegida. Este elemento nos permitirá
definir valores mínimos y máximos (0-100, ya que lo expresaremos en
porcentajes); así como valores bajos (menores de 20%, por ejemplo) y
altos, superiores al 75% en este ejemplo.
<form action="/alta.php" method="post">
<fieldset>
<legend>Datos personales</legend>
[...]
</fieldset>
<fieldset>
<legend>Méritos académidos</legend>
[...]
</fieldset>
<fieldset>
<legend>Sectores en los que desea trabajar</legend>
[...]
</fieldset>
<fieldset>
<legend>Otros aspectos</legend>
<p>
<label for="ccaa">Comunidad auntónoma preferida para trabajar:</label>
<select id="ccaa">
<option value="">Seleccione la comunidad autónoma</option>
<option value="Andalucia">Andalucía</option>
<option value="Aragon">Aragón</option>
<option value="Principado de Asturias">Principado de
Asturias</option>
<option value="Islas Baleares">Islas Baleares</option>
<option value="Pais Vasco">País Vasco</option>
<option value="Canarias">Canarias</option>
<option value="Cantabria">Cantabria</option>
<option value="Castilla-La Mancha">Castilla-La Mancha</option>
<option value="Castilla y Leon">Castilla y León</option>
<option value="Cataluna">Cataluña</option>
<option value="Extremadura">Extremadura</option>
<option value="Galicia">Galicia</option>
<option value="Comunidad de Madrid">Comunidad de Madrid</option>
<option value="Region de Murcia">Región de Murcia</option>
<option value="Comunidad Foral de Navarra">Comunidad Foral de
Navarra</option>
<option value="La Rioja">La Rioja</option>
<option value="Comunidad Valenciana">Comunidad Valenciana</option>
<option value="Ceuta">Ceuta</option>
<option value="Melilla">Melilla</option>
</select>
</p>
<p>
<label>Probabilidad de recibir ofertas: <meter min="0" low="20"
high="75" max="100" value="80">60%</meter></label>
</p>
</fieldset>
</form>
Conocimientos previos
Para poder aplicar las herramientas de accesibilidad de HTML debemos conocer la
estructura básica del lenguaje, de sus etiquetas y documentos.
Una de las prácticas más eficaces para mejorar la accesibilidad de nuestras páginas es
que el código HTML que empleemos esté bien escrito —podemos emplear los servicios
de validación que el WHATWG recomienda: validator.w3.org—.
Además, si elegimos las etiquetas de nuestro código de acuerdo con el significado que
aportan a los elementos, estaremos facilitando enormemente el trabajo a lectores de
pantalla y otros programas relacionados con la accesibilidad. Y como ventaja añadida,
estos documentos bien escritos y dotados de significado semántico serán muy bien
puntuados por los buscadores de Internet, ya que usan técnicas para acceder al
contenido muy similares a las empleadas por los programas relacionados con la
accesibilidad.
Hay que poner especial atención para incluir aquellos elementos que el lenguaje nos
proporciona para ofrecer información sobre el contenido; como las
etiquetas caption para indicar el título de tablas, o figcaption en el caso de
elementos figure.
Una gran ayuda es emplear las etiquetas de encabezados h1, h2, h3, h4...
correctamente creando una jerarquía de contenidos adecuada. En definitiva,
favoreceremos la accesibilidad si conocemos perfectamente el significado de las
etiquetas HTML y las empleamos de acuerdo a ese significado, sin caer en la tentación
de elegir la etiqueta en función de la apariencia que da a su contenido. Esta apariencia
ya la ajustaremos con CSS. Si actuamos de esta manera, las etiquetas sin carga
semántica, como div y span apenas las necesitaremos; usándolas únicamente cuando
sean necesarias para marcar elementos y acceder a ellos desde CSS o javascript.
Se pueden leer varios artículos muy interesantes para ampliar estos consejos en
WebAIM webaim.org
Atributos orientados a mejorar la accesibilidad
Ocultar
role
Antes de existir HTML5 y aparecer la gran cantidad de contenedores semánticos que
disponemos en la actualidad, el uso del atributo role era la mejor manera para señalar
el papel que desempeñaba determinado contenido en nuestra página. Así, era muy
frecuente ver contenedores como los siguientes:
<body>
<div role="header">
[...]
</div>
<div role="main">
[...]
</div>
<div role="footer">
[...]
</div>
</body>
A pesar de estas mejoras en el lenguaje, aún existen muchos casos en los que habrá que
señalar la función que desempeña un determinado elemento. Son muchos los
valores disponibles para el atributo role . En la página de la Fundación Mozilla para
desarrolladores puede consultarse una lista exhaustiva de ellos junto con su
uso: developer.mozilla.org
tabindex
Los usuarios con dificultades para manejar dispositivos apuntadores, como un ratón,
suelen navegar ayudándose del teclado. Para este tipo de usuarios es muy importante
que, mediante el teclado, podamos acceder a todos los elementos ‘accionables’ de la
página en el orden adecuado. El atributo tabindex nos ayuda a reordenar la secuencia
por la que pasa el foco de un elemento a otro al pulsar la tecla del tabulador.
Todos los enlaces y elementos de formularios son seleccionables, por lo que el foco irá
pasando por ellos en el orden en que aparecen en el documento HTML sin necesidad de
emplear tabindex. No obstante, podemos eliminar un elemento (convertirlo en no
seleccionable) de la secuencia simplemente agregando el atributo tabindex con valor
igual a -1.
<a href="http://un.sitio.es" tabindex="-1">Enlace no seleccionable con el
tabulador</a>