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 ConsortiumInternet 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]

Lịch sử

Khuôn mặt cười của phiên bản đầu tiên của Acid2. Do các vấn đề trong phiên bản thử nghiệm này, miệng quá gần mũi và dòng chữ "ERROR" xuất hiện ngay cả trong trình duyệt tuân thủ tiêu chuẩn.

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]

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.[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]

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 ConsortiumInternet 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]

Cụ thể, kiểm tra Acid2:[29]

  • 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ề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.[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
  • Á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ủ

Acid2 được hiển thị bởi các ứng dụng đạt
Việc sử dụng các trình duyệt web phù hợp với Acid2 đã tăng từ tháng 10 năm 2005 đến tháng 5 năm 2009.[41]

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.[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]

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.

NgàyTrình duyệt
Khả dụng
ghi chú
ngày 27 tháng 4 năm 2005Safariprivate build[46]
ngày 18 tháng 5 năm 2005iCabprivate build[47]Bản build có sẵn cho người dùng iCab ngày 20/5/2005.
ngày 4 tháng 6 năm 2005Konquerorprivate build[48]
ngày 6 tháng 6 năm 2005iCabpublic build[47]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]
ngày 6 tháng 6 năm 2005SafariCó sẵn mã nguồn[53]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.
ngày 31 tháng 10 năm 2005Safari 2.0.2phát hành chính thức[54][55]Có trong Mac OS X 10.4.3. Trình duyệt đầu tiên được phát hành chính thức vượt qua bài kiểm tra.
ngày 29 tháng 11 năm 2005Konqueror 3.5phát hành chính thức[56]Trình duyệt tương thích Linux đầu tiên vượt qua bài kiểm tra, mặc dù nó không ẩn thanh cuộn.
ngày 7 tháng 12 năm 2005Prince 5.1phát hành chính thức[57]Phần mềm không phải trình duyệt đầu tiên vượt qua bài kiểm tra.
ngày 10 tháng 3 năm 2006Opera 9 Development build 8249public weekly build[58][59]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]
ngày 28 tháng 3 năm 2006Konqueror 3.5.2phát hành chính thức[62]Cập nhật ẩn thanh cuộn.[63][64]
ngày 11 tháng 4 năm 2006Mozilla Firefoxpublic nightly build[65]Các bản dựng "tái cấu trúc lại" hàng đêm có mã được phân nhánh từ Gecko 1.9/Firefox 3.0, vượt qua Acid2.
ngày 24 tháng 5 năm 2006Opera Mobile for Symbian OSprivate build[66]Trình duyệt mobile đầu tiên vượt qua.
ngày 20 tháng 7 năm 2006OmniWeb 5.5 beta 1public build[67][68][69]OmniWeb chuyển công cụ kết xuất của nó sang WebKit, công cụ kết xuất tương tự được sử dụng trong Safari đã vượt qua bài kiểm tra Acid2
ngày 20 tháng 6 năm 2006Opera 9.0phát hành chính thức[70]
ngày 4 tháng 7 năm 2006Obigo Browserprivate build[71]Trình duyệt mobile thứ 2 vượt qua.
ngày 17 tháng 8 năm 2006iCab 3.0.3phát hành chính thức[72]Bản phát hành công khai đầu tiên ẩn thanh cuộn.
ngày 6 tháng 9 năm 2006OmniWeb 5.5phát hành chính thức[67]
ngày 8 tháng 12 năm 2006Mozilla Firefox, Camino, SeaMonkeypublic nightly build[73]Phân nhánh Reflow được sáp nhập vào thân Gecko. Firefox, Camino, và SeaMonkeyhiện đã vượt qua Acid2.
ngày 5 tháng 3 năm 2008Internet Explorer 8 Beta 1public build[74]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]
ngày 17 tháng 6 năm 2008Mozilla Firefox 3.0phát hành chính thức[75][76]Mozilla Firefox 3.0,3.5,và 3.6 vượt qua Acid2.
ngày 27 tháng 8 năm 2008Internet Explorer 8 Beta 2public build[77]Beta 2 và sau đó vượt qua bài kiểm tra trừ khi được lưu trữ ở Intranet Zone.[20][22]
ngày 2 tháng 9 năm 2008Google Chrome 0.2 betapublic build[78]
ngày 14 tháng 10 năm 2008Flock 2.0phát hành chính thức[79]
ngày 11 tháng 12 năm 2008Google Chrome 1.0phát hành chính thức
ngày 19 tháng 3 năm 2009Internet Explorer 8phát hành chính thức[80]
ngày 27 tháng 10 năm 2009SeaMonkey 2.0phát hành chính thức[81]
ngày 18 tháng 11 năm 2009Camino 2.0phát hành chính thức[82]
ngày 24 tháng 6 năm 2010Spicebird 0.8phát hành chính thức[83]

Xem thêm

  • Comparison of layout engines

Chú thích

Liên kết ngoài