La especificación del protocolo HTTP no especifica un tamaño máximo de URL; pero en la práctica, Internet Explorer, que es el navegador más utilizado por la mayoría de usuarios actualmente, tiene un tamaño máximo de 2.083 caracteres, aunque en la parte de la ruta (es decir, sin los parámetros del query_string [en]) no puede superar los 2.048 caracteres. En otros navegadores esta longitud puede ser razonablemente mayor.
Últimamente, se está planteando crear formularios mediante listas de definición y se está generando muchas dudas sobre si es acertado hacerlo así o no.
En su día, yo también me planteé esa duda. Creí estar convencido de que es acertado usar listas de definición para cada elemento de un formulario y al final acabé descartandolo completamente.
¿Por qué creí que una lista de definición puede marcar correctamente un formulario?
Una lista de definición está compuesta de elementos (items), igual que un formulario está compuesto de datos que se solicitan al usuario. Puede considerarse que cada dato de un formulario es un elemento de la lista de definición.
A su vez, cada elemento de una lista de definición contiene un término y una definición, del mismo modo que cada dato de un formulario tiene una etiqueta y un campo donde el usuario ha de definir el dato.
¿Por qué ahora creo que es incorrecto hacerlo así?
No todos los datos que se solicitan en un formulario encajan perfectamente en una lista de definición. Por ejemplo, un dato que se pide a partir de campos checkbox o radio buttons no encaja.
No garantiza accesibilidad, es más, crea problemas de accesibilidad en algunas versiones de JAWS.
El valor semántico queda definido a partir del <label> de la etiqueta de cada campo ya que éste debe encerrar el <input> del campo asociado, por tanto, es innecesario aumentar el peso de la página mediante marcas de listas de definición.
Conclusión
Creo que la única ventaja que se obtiene de marcar un formulario con listas de definición es una ventaja visual, de presentación, que realmente debe ser tratado con CSS.
Desde el punto de vista semántico no aporta nada sobre el uso correcto de las etiquetas, y desde el punto de vista de la accesibilidad, creo que la complica.
Por tanto, yo creo que usar listas de definición para marcar formularios es incorrecto.
Por un lado, limitar la entrada en el servidor, es decir, poner algún validador en la lógica del servidor (java, php, etc.) que controle el limite y genere algún error en caso de que se exceda
Por otro lado, utilizar javascript para ayudar al usuario a controlar el límite en el navegador.
En cualquier caso, siempre hay que controlar también la limitación en el servidor para aquellos navegadores que no tienen javascript por razones de accesibilidad.
Cuando se pone en el encabezamiento de un fichero XML que nuestro documento está codificado en UTF-8, ¿no se debería guardar el documento en el formato UTF-8?
Lo digo porque, trabajando, me encuentro con este tipo de ficheros siempre codificados en ANSI, y no lo veo lógico.
Label es una marca que se utiliza para adjuntar información a un control. Por ejemplo, si tenemos un formulario donde se solicita la intruducción del nombre, normalmente tendremos una etiqueta que diga "nombre" y un campo de texto. Así:
En este caso, "nombre" debería llevar una marca label para que un lector de pantalla sepa qué texto va asociado al campo de texto. Así:
1) Label debe referenciar un id en el atributo for.
2) Label ha de etiquetar un único control.
Si funcionara tal y como está hecho, un lector de pantalla no sabe qué información va con cada posible opción. Si no pudieramos ver, el lector nos diría que nuestras posibles opciones son Tipo Empresa y Tipo Empresa.
Lo correcto sería así:
Tipo Empresa
<input type="radio" id="nacional" name="tipoEmpreBusqueda" value="1" /><label for="nacional">Actividad Nacional</label>
<input type="radio" id="minorista" name="tipoEmpreBusqueda" value="0" checked="checked" /><label for="minorista">Actividad Minorista</label>
En este caso, el lector nos informaría que nuestras dos posibles opciones son Actividad Nacional y Actividad Minorista.
A través de la explicación de Jordi de Neurotic en Ovillo, acabo de enterarme del uso de !important en CSS y quería hacer una anotación aquí acerca de ello.
Cuando se asigna !important a un atributo, este adquiere mayor importancia que el resto (parece obvio). Se puede utilizar para solucionar facilmente el bug del "box model" de Internet Explorer.
Firefox entiende el !important y le asigna más importancia a este atributo que a cualquier otro atributo asignado a la misma clase, por tanto firefox se queda con que el width es 179px.
Internet Explorer no entiende el !important así que lo que hace es primero asignarle un width 179px y al leer despues una nueva re-definición del atributo width se queda con el ultimo, 198px.
La forma que yo utilizo para implementar esto está reflejada perfectamente en cambiozapatoporvivienda.es:
<ul>
<li><a href="index.html">Inicio</a></li>
<li class="seleccionado">Historial de trueques</li>
<li><a href="galeria.html">Fotos y videos</a></li>
<li><a href="medios.html">Medios</a></li>
<li><a href="preguntas.html">Preguntas Frecuentes</a></li>
<li><a href="conoceme.html">Conóceme</a></li>
</ul>
Utilizo una clase - en este caso llamada "seleccionado" - para indicar qué opción está activa, y normalmente quito el enlace porque es redundante. Luego en las CSS, describo el estilo, en este caso:
Lógicamente, hay muchas maneras de hacer esto, pero creo que esta no está muy desencaminada, aunque quizás le falta fuerza semántica para que un lector de pantalla pueda indicar al usuario explícitamente qué opción está activa. Aunque esto creo que es rizar el rizo.
Desarrollador web con ganas de aprender y enseñar, porque aún queda mucho por aprender y por enseñar.
Uso esta bitácora para hacer mis apuntes profesionales y de paso contribuir a ayudar a mis compañeros de, ésta, mi profesión. [guiño]