Acid2

Acid2 là một trang thử nghiệm được Web Standards Project xuất bản và quảng bá để thể hiện các lỗi hiển thị trang web trong trình duyệt web và các ứng dụng khác hiển thị HTML. Đặt tên theo axit thử vàng, nó đã được phát triển trên tinh thần Acid1, một thử nghiệm tương đối hẹp phù hợp với tiêu chuẩn Cascading Style Sheets 1.0 (CSS1), và được phát hành vào ngày 13 tháng 4 năm 2005. Như với Acid1, một ứng dụng vượt qua bài kiểm tra nếu cách nó hiển thị trang thử nghiệm khớp với hình ảnh tham chiếu.

Acid2 kiểm tra các khía cạnh của đánh dấu HTML, kiểu dáng CSS 2.1, hình ảnh PNG và URI dữ liệu. Trang thử nghiệm Acid2 sẽ được hiển thị chính xác trong bất kỳ ứng dụng nào tuân theo thông số kỹ thuật của World Wide Web Consortium và Internet Engineering Task Force cho các công nghệ này. Các thông số kỹ thuật này được gọi là tiêu chuẩn web vì chúng mô tả cách các công nghệ được sử dụng trên web được mong đợi hoạt động.

Acid2 được thiết kế với Microsoft Internet Explorer đặc biệt trong tâm trí. Những người tạo ra Acid2 đã mất tinh thần vì Internet Explorer không tuân theo các tiêu chuẩn web. Nó có xu hướng hiển thị các trang web khác với các trình duyệt khác, khiến các nhà phát triển web dành thời gian để điều chỉnh các trang web của họ. Acid2 thách thức Microsoft làm cho Internet Explorer tuân thủ các tiêu chuẩn web.

Acid2 được phát hành vào ngày 13 tháng 4 năm 2005. Vào ngày 31 tháng 10 năm 2005, Safari 2.0.2 trở thành trình duyệt đầu tiên vượt qua Acid2. Opera, Konqueror, Firefox và những trình duyệt khác theo sau. Với việc phát hành Internet Explorer 8 vào ngày 19 tháng 3 năm 2009, các phiên bản mới nhất của tất cả các trình duyệt web máy tính để bàn lớn hiện đã vượt qua thử nghiệm cho đến khi IE10 được phát hành, không thử nghiệm. Người kế nhiệm của nó, Microsoft Edge, có thể kết xuất chính xác kể từ phiên bản Windows 10 1607. Acid2 được theo sau bởi Acid3.

Thử nghiệm thất bại khi trình duyệt trở nên phù hợp với sự sụp đổ CSS hiện hành và các tiêu chuẩn lề.

== Lịch sử ==
Acid2 lần đầu tiên được đề xuất bởi Håkon Wium Lie, giám đốc kỹ thuật của Opera Software và người tạo ra chuẩn web Cascading Style Sheets được sử dụng rộng rãi. Trong một bài viết ngày 16 tháng 3 năm 2005 trên CNET, Lie bày tỏ sự thất vọng rằng Microsoft Internet Explorer không hỗ trợ đúng các chuẩn web và do đó không hoàn toàn tương thích với các trình duyệt khác. Ông tuyên bố rằng Acid2 sẽ là một thách thức đối với Microsoft để thiết kế Internet Explorer 7, sau đó trong quá trình phát triển, để đạt được mức độ tuân thủ tiêu chuẩn cao hơn so với các phiên bản Internet Explorer trước đây. Thử nghiệm Acid1 ban đầu đã buộc các nhà sản xuất trình duyệt sửa các ứng dụng của họ hoặc đối mặt với sự bối rối; Lie hy vọng rằng Acid2 sẽ làm như vậy.

Lie và một đồng nghiệp, Ian Hickson, đã tạo ra bản thảo đầu tiên của thử nghiệm vào tháng 2 năm 2005. Ian Hickson đã mã hóa bài kiểm tra cuối cùng phối hợp với Dự án Tiêu chuẩn Web và cộng đồng web lớn hơn. Nó được phát hành chính thức vào ngày 13 tháng 4 năm 2005 và tại thời điểm đó, mọi trình duyệt web đều thất bại một cách ngoạn mục.

Vào ngày 23 tháng 4 năm 2005, Acid2 đã được cập nhật để sửa một lỗi khiến miệng có vẻ quá gần mũi. Sau nhiều lần khiếu nại, thử nghiệm lại được cập nhật vào tháng 1 năm 2006 để loại bỏ một thử nghiệm đối với các nhận xét kiểu SGML không phổ biến không bao giờ được thực hiện rộng rãi. Trong các trình duyệt không triển khai nhận xét kiểu SGML, thử nghiệm ban đầu đã hiển thị từ "ERROR" ở phần dưới cùng của khuôn mặt.

Vào tháng 3 năm 2008, Ian Hickson đã phát hành Acid3 như là một phần tiếp theo của Acid2. Trong khi Acid2 chủ yếu kiểm tra CSS, Acid3 tập trung nhiều hơn vào JavaScript và các công nghệ "Web 2.0" khác.

== Phản ứng của Microsoft ==
Vào tháng 7 năm 2005, Chris Wilson, Kiến trúc sư nền tảng Internet Explorer, tuyên bố rằng việc vượt qua Acid2 không phải là ưu tiên của Internet Explorer 7, mô tả thử nghiệm là một "danh sách mong muốn" của các tính năng thay vì thử nghiệm thực sự về tuân thủ tiêu chuẩn. Vào tháng 12 năm 2007, Microsoft đã thông báo rằng tất cả các thay đổi cần thiết để vượt qua Acid2 sẽ được cung cấp trong Internet Explorer 8, nhưng các thay đổi đó sẽ không được bật theo mặc định, có nghĩa là IE8 sẽ không thực sự vượt qua bài kiểm tra. Mối quan tâm là việc chuyển sang một hành vi mới sẽ gây ra quá nhiều vấn đề trong các trang web mong đợi hành vi cũ, không tuân thủ của Internet Explorer. Sau đó, vào tháng 3 năm 2008, Microsoft đã phát hành IE8 beta 1 và kích hoạt các thay đổi theo mặc định. James Pratt, giám đốc sản phẩm của IE8, giải thích rằng quyết định này được đưa ra để "các nhà phát triển có thể dành nhiều thời gian hơn để xây dựng các tính năng và nội dung thú vị, và ít thời gian hơn chỉ cố gắng điều chỉnh các trang web của họ trên các trình duyệt khác nhau".

Một vấn đề tuân thủ tiêu chuẩn chưa được giải quyết khác đã khiến IE8 beta 1 thất bại nếu không phải tất cả các yếu tố của thử nghiệm được lưu trữ từ cùng một máy chủ. Vào tháng 8 năm 2008, Microsoft đã phát hành IE8 beta 2, giải quyết vấn đề này. Tuy nhiên, kể từ phiên bản beta đó, chế độ chuẩn không được bật theo mặc định cho các trang được tải trong "Vùng mạng nội bộ". Vùng này hoạt động cho các trang được tải qua đường dẫn UNC, địa chỉ được đặt tên không có dấu chấm (như <nowiki>http://mysite/</nowiki>) và các trang web bỏ qua cài đặt proxy. Như vậy, IE8 sẽ không vượt qua bài kiểm tra Acid2 nếu được tải trong những trường hợp này.

== Tổng quan về các chuẩn được kiểm tra ==
Acid2 kiểm tra một loạt các chuẩn web được công bố bởi World Wide Web Consortium và Internet Engineering Task Force. Ngoại trừ CSS 2.1, tất cả các tiêu chuẩn web được kiểm tra đã được mã hóa trước năm 2000. CSS 2.1 là một đề xuất ứng cử viên tại thời điểm phát hành Acid2, và vẫn là một đề xuất ứng cử viên vào ngày 23 tháng 4 năm 2009.

Cụ thể, kiểm tra Acid2:

- Alpha transparency trong định dạng ảnh PNG: Đôi mắt của khuôn mặt cười sử dụng "alpha transparency", là một phần của đặc tả Portable Network Graphics 1996. Alpha transparency pha trộn lông mày vào khuôn mặt mịn màng và thanh lịch. Đây là một vấn đề quan trọng vì, Internet Explorer 6, trình duyệt web được sử dụng rộng rãi nhất tại thời điểm Acid2 được phát hành, không hỗ trợ alpha transparency. This deficiency was rectified in Internet Explorer 7, bringing Internet Explorer in line with other web browsers in this regard.
- Đối tượng thành phần: Đôi mắt cũng kiểm tra hỗ trợ của các thành phần đối tượng (Object element) HTML. Object element là một phần của HTML kể từ khi HTML 4 được phát hành vào năm 1998, nhưng đến năm 2005 nó vẫn chưa được hỗ trợ hoàn toàn trong tất cả các trình duyệt web. Những người tạo ra Acid2 coi yếu tố đối tượng hỗ trợ rất quan trọng vì nó cho phép dự phòng nội dung, nếu một đối tượng không tải, thì trình duyệt có thể hiển thị nội dung thay thế (nói chung đơn giản hơn, đáng tin cậy hơn).
- Dữ liệu URIs: Các hình ảnh thực tế hình thành đôi mắt được mã hóa dưới dạng dữ liệu URIs, cho phép đa phương tiện được nhúng vào các trang web thay vì được lưu trữ dưới dạng một file riêng biệt. Acid2 kiểm tra trường hợp phổ biến nhất, trong đó hình ảnh nhị phân được mã hóa base64 thành văn bản và sau đó văn bản được mã hóa đó được đưa vào URI dữ liệu trong trang web. Mặc dù IETF đã công bố đặc tả URI dữ liệu vào năm 1998, nhưng họ không bao giờ chính thức chấp nhận nó là một chuẩn. Tuy nhiên, đặc tả HTML 4.01 ham chiếu lược đồ URI dữ liệu, và hỗ trợ URI dữ liệu hiện đã được triển khai trong hầu hết các trình duyệt.
- Định vị CSS tuyệt đối, tương đối và cố định: Định vị tuyệt đối có nghĩa là nhà phát triển web chỉ định tọa độ X và Y chính xác cho một phần tử sẽ được đặt vào trang. Định vị tương đối có nghĩa là nhà phát triển web chỉ định độ lệch X và Y từ vị trí thông thường của phần tử. Định vị cố định có nghĩa là phần tử được đặt tương đối với cửa sổ trình duyệt và cuộn với cửa sổ thay vì với phần còn lại của trang.
- The CSS box model: Tính năng này cho phép nhà thiết kế web chỉ định kích thước, padding, borders, và margins,  là trọng tâm của thử nghiệm Acid1 ban đầu. Acid2 không chỉ kiểm tra lại hỗ trợ margins mà còn kiểm tra chiều cao và chiều rộng tối thiểu và tối đa, các tính năng mới đối với CSS 2.0.
- CSS định dạng bảng: Phần này của CSS cho phép nhà thiết kế web áp dụng định dạng bảng mà không cần đánh dấu bảng HTML truyền thống.
- Nội dung được tạo CSS: Sử dụng nội dung được tạo CSS, nhà phát triển web có thể thêm trang trí và chú thích vào các thành phần được chỉ định mà không phải thêm nội dung cho từng nội dung riêng lẻ.
- Phân tích cú pháp CSS: Một số câu lệnh CSS bất hợp pháp có trong Acid2 để kiểm tra xử lý lỗi. Các trình duyệt tuân thủ tiêu chuẩn dự kiến sẽ xử lý các lỗi này theo chỉ dẫn của đặc tả CSS. Điều này giúp đảm bảo khả năng tương thích giữa nhiều trình duyệt bằng cách làm cho tất cả các trình duyệt xử lý CSS với cùng mức độ nghiêm ngặt, để những gì hoạt động trong một trình duyệt không gây ra lỗi ở trình duyệt khác.
- Thứ tự tô màu: Acid2 yêu cầu trình duyệt có thứ tự tô màu chuẩn. Đó là, các yếu tố chồng chéo nên được đặt hoặc tô chồng lên nhau theo đúng thứ tự.
- Hiệu ứng Hover: Khi người dùng di chuyển con trỏ chuột của mình qua mũi của mặt cười, nó sẽ chuyển sang màu xanh lam. Điều này được gọi là hiệu ứng hover, theo truyền thống được sử dụng cho các siêu liên kết, nó sẽ hoạt động trên nhiều yếu tố HTML.

Bởi vì Acid2 không phải là một thử nghiệm toàn diện, nó không đảm bảo sự phù hợp hoàn toàn với bất kỳ tiêu chuẩn cụ thể nào. Một biến thể của thử nghiệm Acid2 không kiểm tra hỗ trợ URI dữ liệu cũng có sẵn từ Web Standards Project.

== Điều kiện vượt qua ==
Điểm vượt qua chỉ được coi là hợp lệ nếu cài đặt mặc định của trình duyệt được sử dụng. Các hành động như thay đổi kích thước phông chữ, mức thu phóng và áp dụng biểu định kiểu người dùng có thể phá vỡ màn hình kiểm tra. Điều này được mong đợi và không liên quan đến sự tuân thủ của trình duyệt.

Các cài đặt trình duyệt và hành động người dùng sau đây làm mất hiệu lực kiểm tra:

- Cuộn
- Thay đổi kích thước cửa sổ trình duyệt
- Phóng to hoặc thu nhỏ
- Vô hiệu hóa hình ảnh
- Sử dụng chế độ "Fit to width" hoặc "Small Screen Rendering "của Opera
- Áp dụng phông chữ tùy chỉnh, màu sắc, phong cách, vv
- Tập lệnh JavaScript hoặc Greasemonkey của người dùng
- Kích hoạt "chế độ xem tương thích" của Internet Explorer

== Ứng dụng tuân thủ ==
Nếu được hiển thị chính xác, Acid2 sẽ xuất hiện dưới dạng mặt cười bên dưới dòng chữ "Hello World!" trong trình duyệt của người dùng, với mũi chuyển sang màu xanh khi con trỏ chuột lướt qua nó. Tại thời điểm phát hành thử nghiệm, mọi trình duyệt đều thất bại, nhưng bây giờ một số trình duyệt đã vượt qua nó. Xem danh sách dưới đây.

=== Chính thức phát hành ===
- Phiên bản Microsoft Edge dành cho máy tính để bàn, vượt qua bài kiểm tra kể từ Windows 10 build 14393.105.
- Internet Explorer, trình duyệt web đi kèm với Windows
- Trình duyệt web Odyssey, trình duyệt web cho AmigaOS và MorphOS
- Trình duyệt dựa trên Gecko
- Mozilla Firefox, trình duyệt web cho Windows, Mac OS và Linux
- SeaMonkey, Internet suite cho Windows, Mac OS và Linux
- Songbird, trình phát phương tiện và trình duyệt web cho Windows, Mac OS và Linux
- Camino, một trình duyệt web cho Mac OS
- Mozilla Thunderbird, ứng dụng email cho Windows, Mac OS và Linux
- Firefox Mobile, trình duyệt web cho thiết bị di động
- Miro, trình tổng hợp RSS, ứng dụng khách BitTorrent, trình duyệt web và trình phát phương tiện
- Mozilla Sunbird, một ứng dụng lịch cho Windows, Mac OS và Linux
- Spicebird 0.8, trình quản lý thông tin cá nhân cho Windows, Mac OS và Linux
- WebRunner (trước đây là Prism), một nền tảng ứng dụng web cho Windows, Mac OS và Linux
- WebKit - và các trình duyệt dựa trên KHTML
- Safari, trình duyệt web có trong Mac OS
- Google Chrome, trình duyệt web cho Windows, Mac OS và Linux
- Konqueror, một trình duyệt web cho Linux
- OmniWeb, một trình duyệt web cho Mac OS
- Shiira, một trình duyệt web cho Mac OS
- iCab, một trình duyệt web cho Mac OS
- Web, trình duyệt web chính thức của Gnome
- Midori, trình duyệt web Xfce chính thức
- Trình duyệt web tích hợp Google Earth
- Trình duyệt dựa trên Presto
- Opera, trình duyệt web cho Windows, Mac OS, Linux, BSD và Solaris với các phiên bản di động cho tất cả điện thoại di động, máy tính bảng và tất cả các sản phẩm của Apple như iPad
- Internet Channel, một phiên bản của trình duyệt Opera cho máy chơi trò chơi Nintendo Wii.
- Prince, trình chuyển đổi XML sang PDF cho Windows, Mac OS và Linux

== Các ứng dụng không đạt ==
 Mặc dù Opera Mini dựa trên cùng một công cụ kết xuất như Opera cho máy tính cá nhân, nhưng nó không vượt qua bài kiểm tra Acid2. Điều này là do Opera Mini cố tình định dạng lại các trang web để cố gắng làm cho chúng phù hợp hơn với các thiết bị có màn hình nhỏ.

== Dòng thời gian của các ứng dụng vượt qua ==
Sau đây là danh sách các bản phát hành ghi chú, các bản phát hành quan trọng của các ứng dụng đã vượt qua bài kiểm tra. Các ứng dụng mới đã vượt qua Acid2 kể từ khi phát hành chính thức đầu tiên không được đưa vào dòng thời gian này. 

== Xem thêm ==
- Comparison of layout engines

== Liên kết ngoài ==
- Acid2 test
- Acid2 test information
- Acid2 in major browsers
- Web Standards Project collection of Acid tests
- Web Standards Project press release 13 Apr 2005
- CNET article proposing the Acid2 test
- Acid2 timeline