Yêu cầu đừng ép buộc dùng chế độ tối
(iamvishnu.com)- Nếu một website chỉ cung cấp chế độ tối, điều đó có thể gây mỏi mắt và khó chịu cho một số người dùng khi đọc bài dài, vì vậy cần có quyền lựa chọn hoặc tổ hợp màu dễ chịu
- Điểm cốt lõi không phải là bản thân chế độ tối, mà là tỷ lệ tương phản sáng tối giữa văn bản và nền; chữ trắng tinh trên nền đen hoàn toàn có độ tương phản 21:1, có thể gây áp lực lớn cho mắt
- Dùng chữ xám
#888888trên nền đen sẽ hạ tỷ lệ tương phản xuống 5.9:1, trở thành một ví dụ về chế độ tối dễ đọc hơn so với độ tương phản quá mức - WCAG 2.1 chỉ yêu cầu tỷ lệ tương phản tối thiểu 4.5:1 cho văn bản thông thường và không đặt giới hạn tương phản tối đa, nên tổ hợp 21:1 vẫn có thể được xem là truy cập được theo quy tắc
- Yêu cầu Maximum text contrast trong bản nháp WCAG 3.0 đã bị gỡ bỏ trong bản cập nhật ngày 4/9/2025, và các bài viết ép buộc chế độ tối hiện cần cách ứng phó tạm thời như tự ghi đè CSS
Khi chế độ tối bắt buộc khiến việc đọc trở nên khó khăn
- Có nhiều website và blog cá nhân được thiết kế chỉ dành cho chế độ tối, và ở một số trang, mắt có thể bắt đầu khó chịu ngay cả trước khi đọc hết một đoạn văn
- Chế độ tối hữu ích trong một số tình huống nhất định, nhưng nếu bị ép áp dụng mà không cho người dùng lựa chọn thì đó là trải nghiệm người dùng tệ
- Sau khi đọc một bài dài ở chế độ tối, mắt có thể không thích nghi lại ngay, khiến người đọc có cảm giác như vẫn nhìn thấy các vệt sọc ngang
Trọng tâm của vấn đề là tỷ lệ tương phản sáng tối
- Yếu tố then chốt quyết định sự khó chịu trong chế độ tối là tỷ lệ tương phản sáng tối giữa văn bản và nền
- Đặt chữ trắng tinh trên nền đen hoàn toàn sẽ tạo ra tỷ lệ tương phản 21:1
- Tổ hợp này có thể gây áp lực cho mắt và khiến việc đọc trở nên khó khăn
- Dùng chữ xám
#888888trên nền đen sẽ hạ tỷ lệ tương phản xuống 5.9:1- Đây là ví dụ về một tổ hợp màu có thể đọc thoải mái hơn dù vẫn là chế độ tối
- Tỷ lệ tương phản càng cao không phải lúc nào cũng càng tốt; trong chế độ tối, độ tương phản quá mức trái lại có thể làm tăng cảm giác khó chịu
Những điểm tiêu chuẩn WCAG bỏ sót
- Hiện tại, WCAG 2.1 SC 1.4.3 yêu cầu tỷ lệ tương phản tối thiểu 4.5:1 cho văn bản thông thường
- WCAG 2.1 không có giới hạn tỷ lệ tương phản tối đa
- Ngay cả tổ hợp có độ tương phản 21:1 như chữ trắng tinh trên nền đen hoàn toàn cũng có thể được xem là hoàn toàn truy cập được theo quy tắc
- Dù có thể gây khó chịu cho nhiều người dùng, các hướng dẫn hiện có không xử lý vấn đề tương phản quá mức trong chế độ tối
- WCAG 3.0 từng dự kiến bổ sung Maximum text contrast như một yêu cầu mang tính thăm dò
- Theo bản cập nhật tháng 12/2025, yêu cầu này đã bị gỡ bỏ trong bản cập nhật dự thảo WCAG 3.0 ngày 4/9/2025
- GitHub Issue về toán học của tỷ lệ tương phản vẫn còn mở
Cách обход tạm thời hiện có
- Nếu một bài viết quan trọng chỉ được cung cấp bằng chế độ tối bắt buộc, có thể ghi đè CSS trong công cụ dành cho nhà phát triển của trình duyệt để đảo màu
- Nếu không muốn dùng plugin riêng, công cụ dành cho nhà phát triển vẫn là biện pháp tạm thời cho đến khi có giải pháp tốt hơn
Những tình huống chế độ tối phù hợp
- Đây không phải là quan điểm phản đối bản thân chế độ tối; trong các tình huống sau, chế độ tối được ưa chuộng hơn
- Khi đọc trên màn hình OLED trong phòng đã tắt đèn, ví dụ đọc bằng điện thoại trước khi ngủ
- Khi viết code, vì hầu như mọi IDE mặc định đều cung cấp chế độ tối với tỷ lệ tương phản dễ chịu
- Khi chế độ tối của website có tỷ lệ tương phản dễ chịu
- Sau bài viết, thảo luận trên Hacker News có cả ý kiến đồng tình lẫn phê bình, đề cập đến lựa chọn chế độ tối/sáng của các OEM thời kỳ đầu, tầm quan trọng của tỷ lệ tương phản, trải nghiệm cá nhân, tình trạng y khoa, vấn đề accessibility và các cách обход
1 bình luận
Các ý kiến trên Hacker News
Chế độ tối vốn gần với mặc định truyền thống hơn
Những màn hình đơn sắc nền đen với chữ xanh lá/hổ phách thời đầu, chế độ văn bản DOS màu xám trên nền đen, chữ xanh lam nhạt trên nền xanh lam đậm của C-64, và chữ xám/trắng trên nền đen của Apple II đều như vậy
Ngay cả trong GUI, Amiga cũng có Workbench mặc định là nền xanh lam đậm, và người dùng có thể chọn toàn bộ bảng màu
Chính Microsoft Windows đã đặt mặc định chữ đen trên màn hình trắng trong hầu hết ứng dụng với lý do giống giấy; dù giấy có màu trắng thì cũng không phải màu trắng phát sáng, nên sự chuyển đổi đó rất khó chịu
Rất vui khi chế độ tối quay lại, nhưng cần có lựa chọn chứ không phải ép dùng chế độ tối; và nếu có thể, chế độ sáng cũng đừng là màu trắng ở độ sáng tối đa
Không nên để thiết bị hay màn hình ở màu trắng phát sáng, mà phải giảm độ sáng để trông giống tờ giấy đặt bên cạnh
Thứ thay đổi mô thức cũng không phải Windows, mà trong số các thiết bị tiêu dùng phổ biến thì Mac đi trước; CRT tích hợp của nó cũng kém sáng hơn giấy dưới ánh sáng văn phòng truyền thống
Máy tính thời đầu dùng phối màu tối vì độ phân giải thấp và độ sáng pixel bị nhòe nên dễ đọc hơn; khi công nghệ tốt lên, vấn đề đó biến mất, và chữ tối trên nền sáng — dù trên màn hình hay bản in — dễ chịu cho mắt hơn
Màu hổ phách và xanh lá cũng từng được cho là dễ chịu hơn chữ trắng, và khác biệt lớn đến mức khó so sánh trực tiếp
Nếu nền không phải đen tuyệt đối mà có một mức sáng nhất định, chế độ tối có thể ổn với nhiều người hơn, nhưng như vậy sẽ mất hầu hết lợi thế của OLED
Đúng là DOS/Unix trên PC thời đầu dùng nền đen do đặc tính màn hình khi đó, nhưng trước đó người ta chia sẻ thông tin bằng giấy trắng, và thời kỳ đầu của Internet đã đưa trở lại chữ đen trên nền trắng
Rốt cuộc không có thứ gọi là mặc định chính thống; tất cả phụ thuộc vào việc bạn tham gia từ lúc nào
Amiga Workbench có nền xanh lam đậm cũng là vì chi phí. Người ta dự đoán nhiều người sẽ nối máy với TV qua ngõ xuất video composite, và chữ trắng trên nền xanh lam là tổ hợp TV hiển thị tốt
Màn hình 1080 có giá khoảng một phần ba giá A1000, và rất có khả năng nhiều chiếc A500 sau khi được mở hộp vào dịp Giáng sinh đã được nối với TV trong một thời gian
Tôi đã dùng gần như mọi trình xử lý văn bản cho Amiga; trừ WordPerfect, tất cả đều là chữ đen trên nền trắng. WordPerfect cũng có thể đổi được, chỉ là giữ mặc định xanh lam/trắng để đồng bộ với DOS mà thôi
Nền tối khiến hiện tượng nhấp nháy ít dễ thấy hơn; đến thập niên 1990, khi CRT có tần số quét cao hơn trở nên phổ biến, vấn đề nhấp nháy giảm đi và chế độ sáng trở thành mặc định
Khoan đã, nếu một website chỉ có chữ sáng trên nền tối thì đó là chủ đề và bầu không khí của website đó
Chế độ tối chỉ tồn tại khi có chế độ sáng, và ngược lại cũng vậy
Không thể ép một website không muốn duy trì cả hai chế độ
Nếu chế độ tối là đặc trưng thương hiệu, hãy chọn độ tương phản dễ chịu cho văn bản
Chế độ sáng mặc định và không thể cấu hình đã tồn tại từ lâu, và cũng có các plugin như Dark Reader để bù đắp
Nhưng ngược lại, không có nhiều hạ tầng để ép chế độ sáng
Trong hầu hết tình huống, tôi cho rằng chế độ sáng tốt hơn chế độ tối. Tình huống duy nhất chế độ tối tốt hơn là khi bạn ngồi trong phòng tối mà màn hình là nguồn sáng duy nhất, nhưng đó thường không phải là môi trường lành mạnh
Chế độ tối giống một công cụ hỗ trợ hơn; bật đèn hoặc đi ngủ thì tốt hơn
Trong môi trường không có ánh sáng, chế độ sáng có thể gây khó chịu khi đọc, nhưng trong môi trường sáng, chế độ tối gần như không đọc nổi. Hãy thử đọc UI chế độ tối trên điện thoại vào một ngày hè nắng gắt, kể cả tăng độ sáng lên tối đa cũng vẫn khó nhìn
Thực ra trình duyệt có tính năng đặt màu nền và màu chữ mặc định, nên nếu website chỉ cần tôn trọng các mặc định này trừ khi thật sự cần thiết, có lẽ sẽ không cần tiện ích mở rộng
Thật đáng buồn khi cần một tiện ích mở rộng để “thật sự tôn trọng sở thích của tôi”, nhưng nếu cần thì ít nhất cũng nên biết rằng nó hỗ trợ cả hai phía. Toàn bộ tình hình khá ngớ ngẩn, nhưng vẫn có cách обход
Giờ đây mọi hệ điều hành đều có các chế độ có thể chuyển đổi và có thể báo cho trình duyệt biết. Trình duyệt có thể, và nên, thích ứng theo thiết lập mà hệ điều hành báo cáo
Thiết kế UI, ngoại trừ vài hòn đảo hợp lý như Paul Fitts, phần lớn là chuỗi các trào lưu và “khí chất” bị áp dụng sai
Ban đầu người ta nói độ tương phản xấu nên dùng thiếu tương phản, rồi tiếp theo nói độ sáng xấu nên dùng thiếu độ sáng. Sau đó họ lại nhận ra vì sao độ tương phản và độ sáng vốn quan trọng, và vòng lặp tiếp tục
Nó giống cảm giác nhìn thẳng vào đèn pha ô tô bật chế độ chiếu xa; tôi có dùng plugin Dark Reader, nhưng điều đó khác với việc trang web hỗ trợ chế độ tối đúng cách
Ngay cả giữa ban ngày cũng dễ nhìn hơn nhiều. Tôi ước chế độ Pure Black là một tùy chọn tách biệt với chế độ tối/sáng, như trong một số ứng dụng Android
Hiện tại tôi cầm cự bằng cách giảm độ sáng trong Dark Reader xuống mức tối thiểu, nhưng cách này hơi thô
Bản thân blog này không làm theo thiết lập của thiết bị mà ép độc giả dùng chế độ sáng
Tác giả đã đổi quan điểm ở giữa bài và kết luận rằng vấn đề không phải là chế độ tối mà là độ tương phản màu
color: #111;vàbackground-color: #fdfdfd;, tức là tỷ lệ tương phản 18.56:1Trớ trêu là cuối cùng tác giả lại nói sẽ dùng bộ lọc đảo màu như một cách обход; nếu một người thích chế độ tối dùng thứ như
Invert Modecủa Vivaldi trên trang nền trắng/chữ đen rất gắt của tác giả, họ sẽ nhận được đúng tỷ lệ tương phản kiểu tối mà tác giả đang phàn nànMong đừng ép người dùng dùng độ tương phản thấp
Không phải ai cũng xem nội dung trên màn hình được hiệu chuẩn trên 100 nit và trong môi trường ánh sáng xung quanh sáng nhưng hợp lý
Các kết hợp xám-trên-xám được khuyến nghị có thể khó đọc, chẳng hạn khi xem ở độ sáng 0 trong phòng tối hoàn toàn hoặc dưới ánh nắng trực tiếp
Toàn bộ dải màu SDR tồn tại là để được dùng; nó không phải HDR cần bị giới hạn để khỏi làm người dùng chói mắt
Đây không chỉ là chuyện sáng hay tối. Tôi muốn các website nói chung tôn trọng tùy chọn hệ thống của mình
Nếu theme hệ điều hành của tôi là chữ Comic Sans màu tím trên nền gạch vàng, trình duyệt cũng nên tôn trọng điều đó
Nếu tôi muốn đọc văn bản trên toàn bộ chiều rộng trình duyệt mà lại phải xem trong một cột hẹp 5 inch ở giữa, tôi không nên phải dùng phép thuật trong cài đặt trình duyệt, triệu hồi CSS ghi đè hay cài tiện ích mở rộng
Trình duyệt chỉ nên nói: “Nhà phát triển web à, chịu thôi. Tùy chọn của người dùng thắng”
Trình duyệt đã trao quá nhiều quyền kiểm soát cho nhà phát triển để họ có thể phớt lờ điều người dùng muốn, khiến cụm “user agent” trở nên lạc lõng. Giờ nó gần giống developer agent hơn
Tôi cũng dùng như vậy và việc duyệt web tốt hơn nhiều
Có nơi chế độ tối rất tuyệt, có nơi thì vô lý. Theme trắng cũng vậy
Quá nhiều nhà phát triển web giả định rằng ai cũng thích chế độ tối, đặt nó làm mặc định rồi biện minh rằng có nút chuyển Dark/Light Mode
Thật ngạc nhiên là ngay cả các website mới tạo cũng thường không phát hiện tùy chọn của người dùng mà cố định một chế độ
Nếu là nhà phát triển, bạn có thể dùng thuộc tính
color-schemecủa CSS để chỉ ra phần tử có thể được render thoải mái trong những bảng màu nào:root { color-scheme: light dark; }element { light-dark(light-color-code, dark-color-code); }Là người dùng macOS, tôi có sở thích pha trộn: chế độ tối tốt cho những thứ như thanh menu hay IDE, nhưng đọc, viết và duyệt web thì tôi thích sáng
Có thể đặt theme thành LIGHT trong System Preferences, rồi chạy
defaults write -g NSRequiresAquaSystemAppearance -bool Yes, đăng xuất, sau đó đặt theme thành DARK trong System PreferencesĐể quay lại theme mặc định, chạy
defaults write -g NSRequiresAquaSystemAppearance -bool NoĐiều buồn cười là ví dụ “văn bản dễ đọc” trên blog đó với tôi lại thật sự khó đọc vì độ tương phản thấp
Tôi tò mò không biết họ có tình trạng mắt hay dùng màn hình kiểu gì
Không chịu nổi, xấu và khó đọc. Mong mọi người dừng lại
Có web API để biết người dùng có đang dùng chế độ tối hay không, nên cứ dùng nó là được
@media (prefers-color-scheme: dark) { CSS Rules here... }Chế độ tối là một sai lầm
LCD đời đầu tối nên mọi người cố bù bằng cách đẩy màu trắng lên rất mạnh, và giờ khi LCD đã bắt kịp thì nó trở thành mức thiêu mắt khá nhiều người
Vì vậy càng ngày càng phải hỗ trợ hai chế độ, và biểu tượng chế độ tối xấu đến lố bịch của Apple cho thấy việc làm tốt chuyện này khó đến mức nào
Lý tưởng nhất, theo tôi, là đưa màu mặc định của giao diện máy tính trở lại màu xám như thời CRT sáng còn là tiêu chuẩn
Như vậy còn có lợi thế là có thể tạo gợi ý chiều sâu cho các thành phần UI, và điều đó cũng nên được mang trở lại
Điểm cốt lõi là nó phải cấu hình được để người dùng đặt tùy chọn của riêng mình
Cá nhân tôi thấy chế độ sáng chói, đau mắt và gây mệt. Mỗi người khác nhau
Chế độ sáng thường không phải trắng hoàn toàn, còn chế độ tối là các tông xám