Principio clave del desarrollo web: la ley del menor privilegio
- Uno de los principios clave del desarrollo web, la “ley del menor privilegio”, significa elegir el lenguaje de menor nivel que sea adecuado para el propósito dado.
- Entre HTML, CSS y JS, se prefiere primero HTML, luego CSS y por último JS.
- JS es el más versátil, pero conlleva riesgos como fallas de carga, consumo adicional de recursos y problemas de accesibilidad.
Interruptor personalizado
- Cuando, por requisitos de diseño, se implementa un interruptor personalizado en lugar de una casilla de verificación común, es posible hacerlo con HTML y CSS usando la pseudoclase
:checked en vez de JS.
- El navegador conecta automáticamente los elementos
input dentro de una etiqueta label y los hace clicables, lo que permite la función de alternar sin manejadores adicionales de JS.
Autocompletado nativo: Datalist
- En lugar de JavaScript, se puede usar
datalist, una función integrada del navegador, para implementar una característica que filtre y muestre automáticamente las opciones conforme el usuario escribe.
- El usuario puede ingresar el valor que quiera o hacer clic en el ícono desplegable agregado por el navegador para ver todas las opciones.
Selector de color nativo
- En lugar de un selector de color complejo hecho con JS, se puede usar un selector de color nativo implementado con una sola línea de HTML.
- En los navegadores basados en Chrome, además se ofrece una función extra para elegir colores desde cualquier parte de la pantalla.
Acordeón
- Con los elementos
details y summary, se puede ocultar contenido hasta que el usuario lo necesite y así mejorar la estructura de la página.
- Con el atributo
open, uno de los elementos del acordeón puede quedar abierto de forma predeterminada.
Modal interactivo
- Con el elemento
dialog, se puede implementar un modal para mostrar información al usuario o solicitarle datos.
- Se usa JS para abrir el modal, pero todo lo demás puede manejarse con HTML y CSS nativos.
Conclusión
- Este artículo muestra que se puede usar menos JS y aprovechar las capacidades de CSS y HTML para crear mejores sitios web.
- Es importante probar nuevas formas de implementación teniendo en cuenta la accesibilidad.
Opinión de GN⁺
- El punto más importante de este texto es que, al desarrollar para la web, se puede mejorar el rendimiento y la accesibilidad aprovechando al máximo HTML y CSS sin depender de JS.
- Resulta interesante para desarrolladores web porque presenta nuevas formas de implementar, de manera más simple y eficiente, funciones que antes se pensaba que solo eran posibles con JS.
1 comentarios
Comentarios de Hacker News
Se señala que faltó mencionar que JavaScript tiene mejor compatibilidad para usarse en ciertas áreas
appearance, MDN presenta muchas advertencias y recomienda pruebas exhaustivas, especialmente para el uso deappearance: nonedatalistno funciona en Firefox para Android y solo aparece como una caja de entrada simpledetailsydialogExpresan sorpresa de que incluso en 2023 todavía sigamos teniendo problemas generales de experiencia de usuario (UX) con formularios y entrada de datos por parte del usuario
No conocían
datalist, pero parece no funcionar correctamente en Chrome para AndroidMención de desplazamiento suave nativo con
scroll-behavior: smooth, carruseles nativos conscroll-snapy animaciones basadas en scrollCon
<details>existe la ventaja de que el contenido se puede buscar con Ctrl+F y, mientras que no se puede abrir un acordeón en JavaScript,<details>sí se puede abrirOpinión de que
datalistno es una opción adecuada salvo que sea para herramientas internasOpinión de que, si se sigue el estándar de HTML, todo es consistente y se puede aplicar fácilmente a cosas como accesibilidad o traducción
Se señala que CSS puede usarse como una herramienta para dificultar la lectura de páginas web
Mención de la "Regla del Menor Poder (Rule of Least Power)" como uno de los principios clave del desarrollo web