
Cuando empecé en el desarrollo web (2005-2010 fueron años de formación para mí), una de las primeras lecciones que aprendí fue tener una base limpia de HTML. “Cómo se ve el hermoso código HTML” es en realidad una de las publicaciones más populares en este mismo sitio. La imagen de esa publicación llegó a páginas populares en subreddits de vez en cuando.
Ahora, aunque generalmente escribo HTML como ese de forma predeterminada cuando trabajo en sitios como este, también trabajo en proyectos que no tienen una salida HTML como esa. No trabajo en Twitter, pero esto es lo que puede ver al abrir DevTools e inspeccionar el DOM allí:
Nadie lo acusaría de ser HTML “limpio”. De hecho, no es difícil imaginar que se le arrojen críticas. ¿Por qué todos los divs! divitis!! ¿Es eso en serio un <div role="button">
vamos ahora ¡Esos son nombres de clase horribles! ¡Vómito robot!
Lo que probablemente esté más cerca de la verdad es que en realidad no importa tanto. No es que la semántica no importe. No es que la accesibilidad no importe. No es que el rendimiento no importe. Es que esta salida en realidad hace esas cosas bastante bien, o al menos tan bien como pretenden hacerlas.
Giuseppe Gurgone se mete en los detalles.
React Native for Web proporciona primitivas multiplataforma que normalizan las inconsistencias y permiten crear aplicaciones web que, entre otras cosas, son compatibles con el tacto.
A los ojos de alguien que no esté familiarizado con el marco, el HTML producido por React Native para Web puede parecer absolutamente feo y lleno de malas prácticas.
Ese DOM en realidad produce un árbol de accesibilidad que se espera y se puede usar. El <div>
Los s con roles son para superar ciertas limitaciones de estilo multiplataforma. Esas clases son de un marco de estilo que ayuda con el alcance de CSS. Parece una locura, pero todo es por una razón.
Eso no quiere decir que todo esto esté por encima de la crítica. Podría argumentar que los nombres de clases robóticas no permiten hojas de estilo de usuario que pueden ayudar con la accesibilidad. Se podría argumentar que los divs superfluos crean un DOM innecesariamente pesado. Se podría argumentar que enviar vomito de robot hace que la web sea menos fácil de aprender, particularmente sin mapas fuente.
Hay cosas de las que hablar, pero solo ver un montón de divs con nombres de clase extraños no significa que sea un código malo. Y tampoco se limita a React Native, muchos marcos tienen sus propios giros especiales en lo que realmente envían a los navegadores, y casi siempre están al servicio de hacer que el sitio funcione mejor de alguna manera, no para enseñar o legibilidad.
Enlace directo →