La prueba Acid3 es una página de prueba web del Proyecto de Estándares Web que verifica el cumplimiento de un navegador web con elementos de varios estándares web , particularmente el Modelo de Objetos de Documento (DOM) y JavaScript .
Si la prueba es satisfactoria, los resultados de la prueba Acid3 mostrarán un contador de fracciones que aumenta gradualmente debajo de una serie de rectángulos de colores. La cantidad de subpruebas aprobadas indicará el porcentaje que se mostrará en la pantalla. Este porcentaje no representa un porcentaje real de conformidad, ya que la prueba no lleva un registro de las subpruebas que se iniciaron realmente (se supone que son 100). Además, el navegador también tiene que mostrar la página exactamente como se muestra la página de referencia en el mismo navegador. Al igual que el texto de la prueba Acid2 , el texto de la representación de referencia Acid3 no es un mapa de bits, para permitir ciertas diferencias en la representación de fuentes.
Acid3 estuvo en desarrollo desde abril de 2007, [1] y se lanzó el 3 de marzo de 2008. [2] El desarrollador principal fue Ian Hickson , un empleado de Google que también escribió la prueba Acid2. Acid2 se centró principalmente en hojas de estilo en cascada (CSS), pero esta tercera prueba Acid también se centra en tecnologías utilizadas en sitios web altamente interactivos característicos de la Web 2.0 , como ECMAScript y DOM Nivel 2. Algunas subpruebas también se refieren a gráficos vectoriales escalables (SVG), lenguaje de marcado extensible ( XML ) y URI de datos . Incluye varios elementos de la recomendación CSS2 que luego se eliminaron en CSS2.1 , [ cita requerida ] pero se reintrodujeron en los borradores de trabajo CSS3 del Consorcio World Wide Web (W3C) que aún no han llegado a las recomendaciones candidatas.
En abril de 2017, las especificaciones actualizadas se habían desviado de la prueba de tal manera que las últimas versiones de Google Chrome , Safari y Mozilla Firefox ya no pasan la prueba tal como está escrita. [3] Hickson reconoce que algunos aspectos de la prueba fueron controvertidos y ha escrito que la prueba "ya no refleja el consenso de los estándares web que pretende probar, especialmente cuando se trata de problemas que afectan a los navegadores móviles". [4]
La parte principal de Acid3 está escrita en ECMAScript ( JavaScript ) y consta de 100 subpruebas en seis grupos llamados "cubos", incluidas cuatro subpruebas especiales (0, 97, 98 y 99). [5]
Los criterios de cumplimiento exigen que la prueba se ejecute con la configuración predeterminada de un navegador. La representación final debe tener una puntuación de 100/100 y debe ser idéntica en píxeles a la representación de referencia. [8] En los navegadores diseñados para computadoras personales, la animación también debe ser fluida (no debe durar más de 33 ms para cada subprueba en un hardware de referencia equivalente a una computadora portátil Apple de primera línea ), [9] aunque un rendimiento más lento en un dispositivo lento no implica incumplimiento. [10]
Para pasar la prueba, el navegador también debe mostrar un favicon genérico en la barra de herramientas del navegador, no la imagen del favicon del servidor web Acid3. Cuando se le solicita al servidor Acid3 , favicon.ico
se muestra un código de respuesta 404 , pero con datos de imagen en el cuerpo. Esto prueba que el navegador web maneja correctamente el código de error 404 al obtener el favicon, tratándolo como un error y mostrando el ícono genérico en su lugar. [11]
Cuando se ejecuta la prueba, los rectángulos se agregarán a la imagen renderizada; la cantidad de subpruebas aprobadas en el grupo determinará el color de los rectángulos.
Tenga en cuenta que Acid3 no muestra exactamente cuántas subpruebas se aprobaron en un grupo. Por ejemplo, si se aprobaron 3 subpruebas y se aprobaron 4 subpruebas en el grupo 2, ambas se mostrarían en un rectángulo negro.
Una vez que la página de prueba de Acid3 se haya procesado por completo, se puede hacer clic en la letra "A" de la palabra "Acid3" para ver una alerta (o hacer clic con la tecla Shift presionada para abrir una nueva ventana) que explica exactamente qué subpruebas fallaron y cuál fue el mensaje de error. En caso de que una de las 100 pruebas haya sido aprobada pero haya llevado demasiado tiempo, el informe incluye los resultados de tiempo para esa única prueba. La alerta informa el tiempo total de toda la prueba de Acid3.
Para que la prueba se muestre correctamente, los agentes de usuario deben implementar las especificaciones CSS 3 Text Shadows y CSS 2.x Downloadable Fonts, que actualmente están siendo estudiadas por el W3C para su estandarización. Esto es necesario ya que la prueba utiliza una fuente TrueType personalizada , llamada "AcidAhemTest", para cubrir un cuadrado rojo de 20x20. Sin embargo, la especificación CSS no exige que se admitan fuentes Truetype. Un navegador que admita únicamente fuentes OpenType con contornos CFF o fuentes OpenType integradas podría admitir el estándar CSS, pero no superaría la prueba Acid3. El glifo , cuando se muestra con la fuente descargada, es simplemente un cuadrado, que se vuelve blanco con CSS y, por lo tanto, invisible. [12]
Además, la prueba también utiliza imágenes codificadas en Base64 , algunos selectores más avanzados, valores de color CSS 3 (HSLA), así como selectores y valores falsos que deben ignorarse.
El empleado de Google Ian Hickson comenzó a trabajar en la prueba en abril de 2007, pero el desarrollo avanzó lentamente. En diciembre de 2007, el trabajo se reanudó y el proyecto recibió atención pública el 10 de enero de 2008, cuando Anne van Kesteren lo mencionó en blogs . [13] En ese momento, el proyecto residía en una URL que mostraba claramente su naturaleza experimental: "http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html". A pesar del aviso en la URL, la prueba recibió una amplia atención en la comunidad de desarrollo web. En ese momento solo se habían realizado 84 subpruebas y el 14 de enero Ian Hickson anunció una competencia para completar las 16 que faltaban. [14]
Los siguientes desarrolladores contribuyeron a la prueba final a través de esta competencia:
Incluso antes de su lanzamiento oficial, el impacto de Acid3 en el desarrollo de navegadores fue espectacular. En particular, la puntuación de WebKit aumentó de 60 a 87 en menos de un mes. [15]
La prueba se publicó oficialmente el 3 de marzo de 2008. [2] Se esperaba que en unos meses se publicara una guía y un comentario, [15] pero, a marzo de 2011, solo se habían publicado los comentarios. El anuncio de que la prueba está completa significa solo que se la debe considerar "lo suficientemente estable" para su uso real. Se encontraron algunos problemas y errores con la prueba, y se modificó para solucionarlos. [16] [17] El 26 de marzo de 2008, el día en que los equipos de Opera y WebKit anunciaron una puntuación de 100/100, los desarrolladores de WebKit se pusieron en contacto con Hickson sobre un error crítico en Acid3 que presumiblemente permitía que se aprobara una violación del estándar SVG 1.1. Hickson corrigió el error con la ayuda de Cameron McCormack, un miembro del Grupo de trabajo SVG del W3C. [18] [19]
En 2008, las versiones de desarrollo de los motores de diseño Presto [20] [21] y WebKit [19] [22] (utilizados por Opera y Safari respectivamente) obtuvieron una puntuación de 100/100 en la prueba y procesaron la página de prueba correctamente. En ese momento, ningún navegador que utilizaba los motores de diseño Presto o WebKit pasó la prueba de rendimiento. [23] [24]
Google Chrome y Opera Mobile [25] obtuvieron una puntuación de 100/100. [26] Las preocupaciones de seguridad sobre las fuentes descargables retrasaron la aprobación de Chrome. [27]
La versión 68 y posteriores de Chrome obtienen una puntuación de 97/100.
En el momento del lanzamiento de Acid3, los desarrolladores de Mozilla Firefox se habían estado preparando para el inminente lanzamiento de Firefox 3 , centrándose más en la estabilidad que en el éxito de Acid3. En consecuencia, Firefox 3 tuvo una puntuación de 71. [28] Firefox 3.5 obtuvo una puntuación de 93/100 y Firefox 3.6 una puntuación de 94/100. Inicialmente, Firefox 4 obtuvo una puntuación de 97/100, porque no admitía fuentes SVG. Más tarde, Firefox 4 obtuvo una puntuación de 100/100, porque las pruebas de fuentes SVG se eliminaron de Acid3.
Según Robert O'Callahan, un empleado de Mozilla, Firefox no soportaba las fuentes SVG porque Mozilla consideraba que WOFF era una alternativa superior a las fuentes SVG. [29] Otro ingeniero de Mozilla, Boris Zbarsky, afirmó que el subconjunto de la especificación implementado en Webkit y Opera no ofrece beneficios a los autores o usuarios web en comparación con WOFF, y afirmó que implementar fuentes SVG completamente en un navegador web es difícil porque "no fue diseñado con la integración con HTML en mente". [30]
El 2 de abril de 2010, Ian Hickson realizó cambios menores en la prueba después de que Mozilla, debido a preocupaciones de privacidad, alterara la forma en que Gecko maneja la :visited
pseudoclase. [31] [32]
Firefox 51.0a1 realizó una regresión de 100 a 99 el 14 de septiembre de 2016; Firefox 55.0a1 retrocedió a 97 el 1 de mayo de 2017. [33] En las versiones de Firefox Quantum, 63.0 recibió 97/100; 64.0 obtuvo 96/100, 68.1.0esr y posteriores [34] obtuvieron 97/100. Las versiones de Firefox 105.0 recibieron 99/100, mientras que la 109.0 obtuvo 97/100. A partir de la 121.0, obtuvo 97/100 en la prueba.
Microsoft afirmó que Acid3 no estaba de acuerdo con el objetivo de Internet Explorer 8 y que IE8 mejoraría sólo algunos de los estándares que estaba probando Acid3. [35] IE8 obtuvo una puntuación de 20/100, que es mucho peor que la de todos los competidores relevantes en el momento del lanzamiento de Acid3, y tuvo algunos problemas con la representación de la página de prueba de Acid3. El 18 de noviembre de 2009, el equipo de Internet Explorer publicó una entrada de blog sobre el desarrollo inicial de Internet Explorer 9 a partir de la presentación del PDC , mostrando que una compilación interna del navegador podría obtener una puntuación de 32/100. [36]
A lo largo de 2010, varias versiones preliminares públicas para desarrolladores mejoraron las puntuaciones de las pruebas de Internet Explorer 9 de 55/100 (el 16 de marzo [37] ) a 95/100 (a fecha del 4 de agosto). [38] [39] [40] Dean Hachamovich, director general del equipo de IE, argumentó que esforzarse por obtener 100/100 en la prueba Acid3 no es ni necesario ni deseable. Afirmó que los dos fallos de Acid3 estaban relacionados con funciones (fuentes SVG y animación SMIL) que estaban "en transición". [41]
En Internet Explorer 11 , obtiene una puntuación de 100/100 en la prueba Acid3. Microsoft Edge , que utiliza el motor de navegación Blink , muestra una puntuación de 97/100 en la versión 109.
Las primeras iteraciones de la prueba fueron criticadas por ser una colección seleccionada de características que rara vez se usaban, así como aquellas que todavía estaban en un borrador de trabajo del W3C. Eric A. Meyer , un destacado defensor de los estándares web, escribió: "El verdadero punto aquí es que la prueba Acid3 no es una prueba de soporte de estándares de amplio espectro. Es una obra maestra, y algo así como un pueblo Potemkin . Lo cual es una pena, porque lo que realmente se necesita ahora son conjuntos de pruebas exhaustivos para especificaciones: XHTML, CSS, DOM, SVG". [42]
"Implementar sólo lo suficiente del estándar para pasar una prueba es engañoso y no tiene nada que ver con el cumplimiento de los estándares", argumentó el responsable de UX de Mozilla, Alex Limi, en su artículo "Derribando mitos: por qué Firefox 4 no obtendrá 100 puntos en Acid3". Limi argumentó que algunas de las pruebas, en particular las de fuentes SVG, no tienen relación con el uso real y que las implementaciones en algunos navegadores se han creado únicamente con el objetivo de aumentar las puntuaciones. [43]
El 17 de septiembre de 2011, Ian Hickson anunció una actualización de Acid3. En palabras de Hickson, Håkon Wium Lie de Opera Software y él comentaron "las partes de la prueba que podrían cambiar en las especificaciones". Esperaban que este cambio "permitiera que las especificaciones cambien de la manera que sea mejor para la Web, en lugar de limitar los cambios a solo cosas que se ajusten a lo que Acid3 probó". [44]
Como resultado, Firefox 4 e Internet Explorer 9 obtuvieron una puntuación de 100/100 en Acid3, pero Internet Explorer no procesó la prueba correctamente porque no admitía text-shadow hasta Internet Explorer 10. [45]
Acid3 prueba partes de los siguientes estándares:
Una puntuación aprobatoria sólo se considera válida si se utilizan las configuraciones predeterminadas del navegador.
Las siguientes configuraciones del navegador y acciones del usuario pueden invalidar la prueba:
La última compilación posterior a la 9.5 tiene una puntuación de 99/100 y no cumple el criterio de fluidez.
La prueba ACID3 es una colección de pruebas interesantes, distribuidas en un gran conjunto de estándares. Algunos de esos estándares verán mejoras en IE8 (de hecho, IE8 ya mejora la puntuación de IE7), pero nos centramos en las características y estándares más importantes para facilitar la vida de los desarrolladores web. La prueba Acid3 no se relaciona directamente con ese objetivo.