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ề.[1]
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.[2] 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.[3]
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.[4] 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.[5][6][7] Nó được phát hành chính thức vào ngày 13 tháng 4 năm 2005[8] 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.[9]
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.[10][11] 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.[12]
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.[13] 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.[14][15] 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.[16] 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".[17]
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ủ.[18][19] Vào tháng 8 năm 2008, Microsoft đã phát hành IE8 beta 2, giải quyết vấn đề này.[20] 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ư http://mysite/) và các trang web bỏ qua cài đặt proxy.[21] 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.[22]
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.[23][24][25][26] CSS 2.1 là một đề xuất ứng cử viên tại thời điểm phát hành Acid2,[27] và vẫn là một đề xuất ứng cử viên vào ngày 23 tháng 4 năm 2009.[28]
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,[30] 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.[31]
Đố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,[32] 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.[33] Tuy nhiên, đặc tả HTML 4.01 ham chiếu lược đồ URI dữ liệu,[34] 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.[35][36]
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,[37] 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.[38]
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ể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.[39]
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:[40]
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
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.
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
Firefox 1.0, Mozilla 1.7.13, Camino 1.6 và Netscape 7.2
Firefox 1.5 và 2.0, SeaMonkey 1.1
Opera 8.0
Opera 8,54
Konqueror 3,4
NetSurf 1.2
NetSurf 3.0 vào quý 2/2011
Opera Mini 4
trên Nokia Nst-4, HĐH Nst 3.1.9
MobileSafari 3.1
Trình duyệt BlackBerry Storm 4.7.0.122
Palm Pre / webOS v1.4.0
Bản dựng di động Microsoft Edge 14393.105
Chrome Beta di động thất bại trong bài kiểm tra Acid2.
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.[42][43] Đ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ỏ.[44][45]
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.
Phiên bản iCab này có thực sự vượt qua bài kiểm tra hay không đã được đặt câu hỏi vì nó sẽ hiển thị một thanh cuộn trên trang thử nghiệm.[49] Đặc tả CSS nói rằng Acid2 được kết xuất chính xác không nên có thanh cuộn,[50] nhưng cũng nói rằng "có thể tồn tại các lý do hợp lệ trong các trường hợp cụ thể" để bỏ qua yêu cầu này.[51][52]
WebKit, nền tảng của Safari, đã trở thành nguồn mở vào ngày 6 tháng 6 năm 2005. Khi Safari được chạy với phiên bản WebKit mới nhất này, nó đã vượt qua thử nghiệm Acid2.
Trình duyệt tương thích Microsoft Windows đầu tiên vượt qua bài kiểm tra và cũng là trình duyệt tương thích với Linux đầu tiên vượt qua bài kiểm tra, bao gồm cả việc ẩn thanh cuộn. Một phiên bản beta công khai đã được phát hành vào ngày 20 tháng 4, cũng thành công.[60][61]
Beta 1 vượt qua bài kiểm tra khi được lưu trữ tại www.webstandards.org, nhưng không vượt qua bài kiểm tra khi được lưu trữ tại webstandards.org hay acid2.acidtests.org.[18]
^Charles (ngày 19 tháng 12 năm 2007). “IE 8: On the Path to Web Standards Compliance – ACID 2 Test Pass Complete”. Microsoft Developer Network. Microsoft. Truy cập ngày 30 tháng 8 năm 2008. About 19 minutes and 15 seconds through the video, Alex Mogilevsky, a member of the IE team, points at a picture of the Acid2 test improperly rendered and states "The video in the bottom is an IE7 version of smiley face...What you're looking at is actually IE8. It is what it looks currently in IE8 and it will look exactly like this when we ship IE8 because we are not breaking any compatibility, and this is a compatible mode of IE8. And, uh, most of the web relies on particular behavior including particular incorrect behavior, so the incorrect behavior will still be there unless the new content wants IE to be in standards-compliant mode, and then they will ask us, and then we will show perfectly standard picture."Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp)Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp); Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp)
^Bos, Bert; Lie, Håkon Wium; Lilley, Chris; Jacobs, Ian (ngày 11 tháng 4 năm 2008). “Cascading Style Sheets, level 2”. World Wide Web Consortium. Lưu trữ bản gốc ngày 11 tháng 8 năm 2008. Truy cập ngày 12 tháng 8 năm 2008. Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)
^Bos, Bert; Çelik, Tantek; Hickson, Ian; Lie, Håkon Wium (ngày 19 tháng 7 năm 2007). “Cascading Style Sheets, level 2 revision 1”. World Wide Web Consortium. Lưu trữ bản gốc ngày 17 tháng 12 năm 2008. Truy cập ngày 5 tháng 1 năm 2009. Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)
^Bos, Bert; Çelik, Tantek; Hickson, Ian; Lie, Håkon Wium (ngày 19 tháng 7 năm 2007). “Cascading Style Sheets, level 2 revision 1”. World Wide Web Consortium. Lưu trữ bản gốc ngày 19 tháng 3 năm 2009. Truy cập ngày 21 tháng 3 năm 2009. Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)
^“Acid2: The Guided Tour”. The Web Standards Project. Lưu trữ bản gốc ngày 23 tháng 12 năm 2007. Truy cập ngày 24 tháng 12 năm 2007.
^“Browser Stats”. TheCounter.com. tháng 4 năm 2005. Bản gốc lưu trữ ngày 13 tháng 8 năm 2008. Truy cập ngày 23 tháng 8 năm 2008.
^“Proposed Standards”. Official Internet Protocol Standards. Internet Society. ngày 4 tháng 1 năm 2009. Lưu trữ bản gốc ngày 17 tháng 1 năm 2009. Truy cập ngày 4 tháng 1 năm 2009.
^Bos, Bert; Çelik, Tantek; Hickson, Ian; Lie, Håkon Wium (ngày 19 tháng 7 năm 2007). “Visual formatting model”. Cascading Style Sheets, level 2 revision 1. World Wide Web Consortium. Lưu trữ bản gốc ngày 5 tháng 1 năm 2009. Truy cập ngày 5 tháng 1 năm 2009. Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)
^Bos, Bert; Çelik, Tantek; Hickson, Ian; Lie, Håkon Wium (ngày 19 tháng 7 năm 2007). “Box model”. Cascading Style Sheets, level 2 revision 1. World Wide Web Consortium. Lưu trữ bản gốc ngày 5 tháng 1 năm 2009. Truy cập ngày 5 tháng 1 năm 2009. Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)Đã định rõ hơn một tham số trong |author2= và |last2= (trợ giúp); Đã định rõ hơn một tham số trong |author3= và |last3= (trợ giúp); Đã định rõ hơn một tham số trong |author4= và |last4= (trợ giúp)
^Altman, Tim (ngày 19 tháng 7 năm 2006). “Tim's Opera Bits v1.1”. Tim's blog. Bản gốc lưu trữ ngày 10 tháng 3 năm 2008. Truy cập ngày 15 tháng 11 năm 2007.
^Wilton-Jones, Mark "Tarquin" (ngày 10 tháng 6 năm 2006). “c33322”. Simon Willison. Bản gốc lưu trữ ngày 24 tháng 3 năm 2008. Truy cập ngày 10 tháng 5 năm 2008. Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp)Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp); Đã định rõ hơn một tham số trong |author= và |last= (trợ giúp)
^Sandfeld, Allan [carewolf] (ngày 4 tháng 6 năm 2005). “Konqueror now passes Acid2”. carewolf's blog. blogs.kde.org. Bản gốc lưu trữ ngày 21 tháng 6 năm 2017. Truy cập ngày 18 tháng 7 năm 2017.
^Wilton-Jones, Mark "Tarquin". “Notes about the scrollbar”. Acid 2 in major browsers. Lưu trữ bản gốc ngày 22 tháng 1 năm 2009. Truy cập ngày 10 tháng 1 năm 2009.
^Handycam (ngày 8 tháng 5 năm 2006). “Acid2 Passes!”. The Omni Group. Truy cập ngày 10 tháng 5 năm 2008.
^Lengye, Andras (ngày 11 tháng 7 năm 2006). “Fourth Mac OS X browser test”. Macintalk. Bản gốc lưu trữ ngày 14 tháng 9 năm 2008. Truy cập ngày 24 tháng 8 năm 2008.
^Much, Thomas (ngày 24 tháng 8 năm 2006). “iCab 3.0.3 Final(ly)”. Thomas Much's Weblog. Truy cập ngày 13 tháng 4 năm 2008.
^Baron, David (ngày 8 tháng 12 năm 2006). “Comment #121”. Bug 289480 – Tracking bug for acid2 (acid 2) test. Mozilla Corporation. Truy cập ngày 8 tháng 12 năm 2006.