Las teclas de acceso (accesskey) permiten activar un elemento del sistema operativo o de una web, pulsando un par de teclas (en Windows, alt+tecla).
Los elementos web que soportan teclas de acceso son: a, area, button, input, label, legend, textarea. Y la acción que realice dependerá del tipo de elemento: activar el enlace o la caja de texto, por ejemplo.
Ante las quejas sobre el funcionamiento del buscador interno del blog, he decidido investigar alternativas, y me decido por usar el motor de Google, en el que estoy misteriosamente super-bien indexado.
De todas maneras, aprovecho para comentar las posibilidades que tenemos para poner una caja de búsqueda de términos en nuestro blog. He intentado simplificar al límite el código y que valide. Luego, que cada cual lo personalice como le venga en gana.
Búsqueda de blogs en Google (la búsqueda es lo mismo que lo anterior, solo cambia la apariencia): <form method="get" action="http://blogsearch.google.com/blogsearch">
<p>
<input type="text" name="as_q" />
<input type="hidden" name="bl_url" value="juglar103.blogsome.com" />
<input type="submit" value="Buscar" />
</p>
</form>
Para terminar, una curiosidad: cómo se pone un texto por defecto en una caja de búsqueda que desaparezca al pinchar en la caja cuando se empieza a escribir:
<input type="text" value="Escriba su consulta..." onfocus="if(this.value=='Escriba su consulta...')this.value=''" />
Probemos con un ejemplo de formulario para los comentarios de un blog. Se intenta cumplir con la accesibilidad, la usabilidad y cierta organizacion de cara al diseño. <form action="/wp-comments-post.php" method="post" id="formulariocomentarios">
<fieldset title="Comentarios de los lectores">
<legend>Comentarios</legend>
<p>
<input type="text" name="autor" id="autor" class="texto" size="28" tabindex="1" />
<label for="autor">Nombre</label>
</p><p>
<input type="text" name="correo" id="correo" class="texto" size="28" tabindex="2" />
<label for="correo">Correo</label>
</p><p>
<input type="text" name="web" id="web" class="texto" size="28" tabindex="3" />
<label for="web">Web</label>
</p><p>
<label for="comentario">Tu comentario</label>
<br />
<textarea name="comentario" id="comentario" class="texto" cols="40" rows="3" tabindex="4"></textarea>
</p>
</fieldset>
<p>
<input type="submit" name="boton" id="boton" tabindex="5" value="Graba el comentario" class="boton" />
</p>
</form>
fieldset: Agrupa un conjunto de controles. legend: Da una leyenda al fieldset. tabindex: Orden que seguirá el cursor por cada caja, dándole a la tecla tabuladora. label: Cuando hace click sobre el texto, también seleccionas la caja.
Cada input debe tener un id, pero además podemos agrupar mediante classes para modificar mas fácilmente los estilos de las cajas.
Los formularios permiten al lector interactuar en nuestra web. Los ejemplos más claros serían los comentarios, las cajas de búsqueda, o los cuestionarios de registro.
Todos los formularios van definidos entre las etiquetas <form>, entre las que situaremos las cajas de texto y botones que lo componen.
Atributos de la etiqueta <form>: action - La acción que realiza el formulario: enviar a un correo electrónico (action=”mailto:correo”) o a un programa (action=”url_programa”) method - La forma en que se envia el formulario: post o get (normalmente, siempre post). enctype - El formato de la información que se envía. Se usa en envío a correo electrónico con valor “text/plain” para garantizar la legibilidad de la información.
Ejemplo: <form action="mailto:direccion@correo.com (o nombre del archivo de proceso)" method="post" enctype="text/plain">
....
</form>
Y a continuación, los elementos que puede contener un formulario:
Caja de texto corto (los atributos type y name son obligatorios): <input type="text" name="nombre">
Atributos opcionales: size=”(nº)” - Tamaño de la caja en número de caracteres. maxlength=”(nº)” - Tamaño máximo del texto que puede ser tomado por el formulario. value=”(texto)” - Texto predefinido de la caja. <input type="text" name="nombre" value="Tu nombre...">
Texto oculto: Se muestra con asteriscos. <input type="password" name="nombre"/>
Texto largo: Para que el visitante pueda escribir varias líneas, usamos <textarea>, con los atributos rows (nº líneas) y cols (nº columnas). <textarea name="comentario" rows="3" cols="40"></textarea>
Para darle un contenido predefinido: <textarea name="comentario" rows="3" cols="40">Escribe tu comentario....</textarea>
Listas de opciones <select name="archivosmeses">
<option>Enero</option>
<option>Febrero</option>
<option>Marzo</option>
<option>Abril</option>
</select>
Atributos de select:
size: Nº valores mostrados de la lista.
multiple: Permite la selección de varios elementos a la vez. (no recomendable)
<select name="archivosmeses" size="2">
Atributos de option:
selected: Opción elegida por defecto. <option selected>Marzo</option>
value: Define el valor de la opción que será enviado al programa. <option value="1">Enero</option>
Botones de radio: <input type="radio" name="opinion" value="1">A favor
<br>
<input type="radio" name="opinion" value="2">En contra
<br>
<input type="radio" name="opinion" value="3">Indiferente
Con opción preseleccionada: <input type="radio" name="opinion" value="1" checked>A favor
Cajas de validación: <input type="checkbox" name="opinion">Estoy de acuerdo
Botón de envío: <input type="submit" value="Enviar">
Botón de borrado: <input type="reset" value="Borrar">
Botones normales (que usaremos para otras funciones javascript): <input type="button" value="Texto del botón">
Un bookmarklet (o favelet) es un enlace especial que se agrega a tus marcadores (o favoritos), y que permite simplificar alguna operación, normalmente usando javascript.
Para instalarlo, basta con arrastrar el enlace que lo contiene (en este artículo los pongo en negrita) hasta la barra de tu navegador.
GmailThis (vía Genbeta): Facilita el envío de un correo desde Gmail, con enlaces y textos de la web en la que estás.
blummy: Visualización más agradable de tus bookmarklets, que puedes importar a otros ordenadores.
OnlyWire: Para enviar tus marcadores a varios servicios a la vez.
Enfocados a desarrollo web:
EditCSS (vía Matthew Schinckel): Despliega en un editor de texto el CSS de la página que estás viendo, pudiendo modificarlo y observar el efectos de los cambios inmediatamente.
Resize (vía coda.coza): Redimensiona la ventana del navegador a los parámetros que indiques.