3 bước xử lý vấn đề độ tương phản Feather Icons: Hướng dẫn tuân thủ WCAG
Feather là một bộ icon nguồn mở đơn giản và đẹp mắt, được sử dụng rộng rãi trong thiết kế giao diện web và ứng dụng. Tuy nhiên, trong quá trình sử dụng, vấn đề độ tương phản thấp thường dẫn đến các vấn đề về khả năng truy cập, đặc biệt là không thân thiện với người dùng khiếm thị. Bài viết này sẽ hướng dẫn bạn qua ba bước đơn giản để giải quyết vấn đề độ tương phản của Feather Icons, đảm bảo tuân thủ tiêu chuẩn WCAG 2.1 AA.
Tại sao độ tương phản của icon lại quan trọng?
WCAG (Hướng dẫn Nội dung Web Khả dụng) quy định tỷ lệ tương phản tối thiểu cho văn bản bình thường là 4.5:1, và 3:1 cho văn bản lớn. Các icon, với tư cách là một phần tử thị giác quan trọng trong giao diện, cũng cần đáp ứng tiêu chuẩn này. Độ tương phản thấp không chỉ ảnh hưởng đến trải nghiệm người dùng mà còn có thể gây ra rủi ro về tuân thủ pháp lý. Màu sắc mặc định #6B7280 của Feather Icons có thể không đáp ứng yêu cầu trên một số nền, và cần được điều chỉnh tùy chỉnh để giải quyết.
Bước 1: Phân tích tình trạng độ tương phản hiện tại
Trước tiên, bạn cần kiểm tra xem độ tương phản của Feather Icons hiện tại có đạt chuẩn hay không. Bạn có thể sử dụng công cụ phân tích độ tương phản trong công cụ dành cho nhà phát triển của trình duyệt, hoặc các công cụ khả năng truy cập chuyên dụng như axe, WAVE. Hãy tập trung vào các tệp sau:
src/icon.js: Logic hiển thị icon cốt lõisrc/icons.js: Định nghĩa bộ sưu tập iconexamples/index.html: Áp dụng icon trong trang ví dụ
Qua kiểm tra, bạn sẽ thấy định nghĩa SVG mặc định của Feather Icons thường đặt thuộc tính fill là "none" và stroke là màu mặc định. Cách thiết lập này tuy giữ được phong cách tối giản của icon nhưng cũng tạo ra không gian linh hoạt để điều chỉnh độ tương phản.
Bước 2: Chỉnh sửa thuộc tính màu sắc của icon
Cách giải quyết vấn đề độ tương phản trực tiếp nhất là điều chỉnh màu sắc của icon. Có hai phương pháp chính:
Phương pháp A: Ghi đè kiểu dáng toàn cục
Thêm các kiểu dáng sau vào CSS để đặt màu stroke cho tất cả Feather Icons:
.bi-icon {
stroke: #1A202C; /* Màu đen cung cấp độ tương phản cao nhất */
stroke-width: 2.8; /* Tăng độ dày đường kẻ để tăng khả năng đọc */
}
Phương pháp B: Chỉnh sửa tệp SVG nguồn
Nếu cần kiểm soát chi tiết hơn, bạn có thể chỉnh sửa trực tiếp các tệp SVG. Feather Icons được lưu trong thư mục icons/, mỗi icon là một tệp SVG riêng biệt. Ví dụ, chỉnh sửa tệp icons/alert-circle.svg bằng cách thay đổi giá trị thuộc tính stroke thành #1A202C (xám đậm) để tăng độ tương phản:
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#1A202C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"></circle>
<line x1="12" y1="8" x2="12" y2="12"></line>
<line x1="12" y1="16" x2="12.01" y2="16"></line>
</svg>
Bước 3: Tự động hóa kiểm tra và kiểm thử độ tương phản
Để đảm bảo tất cả các icon đều đáp ứng yêu cầu về độ tương phản, bạn nên thêm các bài kiểm thử tự động. Feather đã bao gồm khung kiểm thử, bạn có thể mở rộng các trường hợp kiểm thử trong thư mục src/tests/:
- Cài đặt công cụ kiểm tra độ tương phản:
npm install color-contrast-checker --save-dev - Thêm logic kiểm tra độ tương phản vào
src/tests/icon.test.js - Chạy kiểm thử:
npm test
Bên cạnh đó, bạn nên kiểm tra hiển thị của icon trên các màu nền khác nhau để đảm bảo độ tương phản đủ trong mọi tình huống sử dụng. Bạn có thể tham khảo trang examples/index.html và thêm các khu vực trình diễn với màu nền khác nhau để kiểm tra trực quan.
Bạn có thể tìm thấy Feather tại địa chỉ: https://gitcode.com/gh_mirrors/fe/feather