Một
điều làm đau đầu các Web Designer nhất và cũng là vấn đề cố hữu nhất
của lĩnh vực thiết kế web là việc tương thích giữa các trình duyệt.
Trong bài này, chúng ta sẽ không bàn về làm cách nào để trang web tương
thích với mọi trình duyệt mà tôi chỉ tập trung nói về hai nguyên tắc cơ
bản mà mỗi người làm web nào cũng nên để tâm tới.
Hai thuật ngữ này tiếng anh là Progressive Enhancement (Nâng cao lũy tiến) và Grateful Degradation (Giáng cấp dễ chịu >”<). Với những người thiết kế web kinh nghiệm, thì đây là hai khái niệm luôn đi chung với nhau trong quá trình thiết kế một trang web. Đơn giản thì cặp khái niệm này được tạo ra để khi thiết kế trang web phải làm sao cho trang web có thể truy cập được với mọi đối tượng người dùng. Nhưng đối với những trình duyệt hiện đại hơn thì có thể áp dụng nhiều hơn về mặt thẩm mỹ cũng như tăng tính khả dụng của nó.
Grateful Degradation
Thuật
ngữ Grateful Degradation được áp dụng trong nhiều lĩnh vực đặc biệt là
trong cơ học và điện tử học. Nguyên tắc của nó là khi làm ra một sản
phẩm thì làm cho những thứ tốt nhất và phổ thông nhất, hay nói cách khác
là tập trung phát triển cho số đông trước khi mới quay lại hỗ trợ cho
phần còn lại. Còn trong lĩnh vực thiết kế web thì bạn có thể làm sao cho
trang web của mình hiển thị tốt nhất trên những trình duyệt hiện đại và
không có lỗi. Bạn cũng có thể áp dụng những khái niệm mới về CSS3,
HTML5 để cung cấp cho những trình duyệt hiện đại như Chrome và Safari.
Sau
khi đã tạo ra những hiệu ứng mong muốn, bạn sẽ quay lại những trình
duyệt cũ hơn và giáng cấp nó từ từ. Ví dụ khi bạn áp dụng hiệu ứng bo
tròn góc cho trình duyệt hiện đại bằng CSS3. Sau đó quay lại dùng hình
ảnh để tạo ra hiệu ứng tương tự với những trình duyệt thấp hơn. Như thế
những ai sử dụng trình duyệt hiện đại sẽ được hưởng lợi nhờ khả năng mới
của trình duyệt, còn với những ai không có thì vẫn có thể sử dụng được.
Progressive Enhancement
Thuật
ngữ này được giới thiệu muộn hơn nhiều, khoảng năm 2003. Nó ngược lại
với thuật ngữ trên là chúng ta xây dựng trang web cho những trình duyệt
kém hỗ trợ nhất sau đó từ từ bổ sung những tính năng mới cho những trình
duyệt hiện đại hơn.
Ví
dụ cho khái niệm này là khi bạn làm một hệ thống menu của trang web sử
dụng JavaScript để tạo hiệu ứng cho đẹp mắt hơn. Nhưng trước khi thêm
JavaScritp, bạn nên tạo một hệ thống chỉ có mã HTML để cho những người
không bật JavaScript hoặc cả CSS vẫn có thể xem nội dung trang web của
bạn. Sau đó bạn mới sử dụng CSS để làm cho menu có thể Dropdown hoặc Fly
Out. Để những ai không có JavaScript vẫn xem được. Và cuối cùng mới là
sử dụng JavaScript để cho menu thêm bắt mắt cho nhóm người đọc cuối
cùng.
Có cần phải hoàn hảo đến từng chi tiết
Đây
là câu hỏi mà câu trả lời còn phải phụ thuộc vào nhiều yếu tố như thiết
kế, nhóm người đọc, độ phức tạp của code v.v… nhưng tựu chung người ta
chỉ yêu cầu bạn làm sao cho trang web ở mức cơ bản nhất như là không có
hình ảnh, không có CSS và cả JavaScript vẫn có thể sử dụng được tuy
không đẹp bằng phiên bản đầy đủ.
Theo
kinh nghiệm riêng của tôi thì đối với những trình duyệt quá cũ như IE
6, 7 thì miễn sao nội dung trên trang web của bạn vẫn có thể đọc được là
được. Chính vì thề Google nó mới có đoạn code cài sẵn, nếu ai sử dụng
IE 6 mà truy cập vào trang của bạn. Nó sẽ chỉ đưa ra phiên bản cơ bản
nhất là chỉ có chữ mà không có hiệu ứng gì cả.
Tất
nhiên vì yêu cầu công việc hoặc đặc thù của một trang web mà người ta
vẫn muốn trang web phải đẹp dù với những trình duyệt cũ. Nhưng bạn không
phải chính xác đến từng pixel. Bạn khó có thể làm một trang web nhìn
giống nhau đến từng Pixel trên các trình duyệt khác nhau được. Nói ví dụ
như padding bên IE 6 hụt mất 2 px so với Firefox, hoặc menu lại có gạch
chân ở cuối cùng danh sách với IE 6 v.v. những khác biệt nhỏ như thế
không ảnh hưởng đến toàn bộ giao diện.
Đôi
khi bạn cũng phải tự hỏi có cần thiết phải sử dụng cả một “quân thể
code” chỉ để sửa một lỗi là cái border của list item không? Những thứ
không trực tiếp ảnh hưởng đến tính khả dụng của trang web đối với những
trình duyệt cũ thì bạn không nên quá khắt khe làm gì.
Kết luận
Hai
khái niệm trên là những nguyên lý rất hay mà những người làm web có
kinh nghiệm hay làm theo. Áp dụng nó như thế nào và ở mức độ nào là tùy
thuộc vào bạn và tùy thuộc vào Project mà bạn đang làm. Nhưng đừng tập
trung quá vào những trình duyệt hiện đại mà bỏ đi những trình duyệt kém
hơn. Hoặc đừng quá quan tâm tại sao trang web của mình lại lệch sang
phải 3 px ở IE 6 so với Firefox.