Tôi nhảy vào đây hơi muộn, nhưng tình cờ thấy trang này khi tự mình suy ngẫm. Tất nhiên tôi không biết Facebook hay Twitter đã chứng minh điều đó như thế nào, nhưng đây là quá trình suy nghĩ của riêng tôi về những gì nó đáng giá.
Cuối cùng, tôi đã kết luận rằng thực tế này không phải là phi thường (đó có phải là một từ không?). Trên thực tế, bên cạnh sự ngắn gọn và sự liên kết tốt đẹp của "i là biểu tượng", tôi nghĩ rằng đó thực sự là lựa chọn ngữ nghĩa nhất cho một biểu tượng khi một <img>
thẻ đơn giản là không thực tế.
1. Việc sử dụng phù hợp với thông số kỹ thuật.
Mặc dù nó có thể không phải là những gì mà W3 chủ yếu có trong đầu, nhưng đối với tôi, thông số kỹ thuật chính thức <i>
có thể chứa một biểu tượng khá dễ dàng. Rốt cuộc, biểu tượng mũi tên trả lời đang nói "trả lời" theo một cách khác. Nó diễn đạt một thuật ngữ kỹ thuật có thể xa lạ với người đọc và thường được in nghiêng. ("Ở đây tại Twitter, đây là cái mà chúng ta gọi là mũi tên trả lời .") Và đó là một thuật ngữ từ một ngôn ngữ khác: một ngôn ngữ tượng trưng.
Nếu, thay vì biểu tượng mũi tên, Twitter được sử dụng <i>shout out</i>
hoặc <i>[Japanese character for reply]</i>
(trên trang tiếng Anh), điều đó sẽ phù hợp với thông số kỹ thuật. Vậy thì tại sao không <i>[reply arrow]</i>
? (Tôi đang nói đúng ngữ nghĩa HTML ở đây, không phải khả năng truy cập, mà tôi sẽ nhận được.)
Theo như tôi có thể thấy, phần duy nhất của thông số kỹ thuật bị vi phạm rõ ràng khi sử dụng biểu tượng là cụm từ "span of text" (khi thẻ không chứa văn bản nữa). Rõ ràng là <i>
thẻ chủ yếu dành cho văn bản, nhưng đó là một chi tiết khá nhỏ so với mục đích chung của thẻ. Câu hỏi quan trọng cho thẻ này không phải là định dạng của nội dung, mà là ý nghĩa của nội dung đó là gì.
Điều này đặc biệt đúng khi bạn cho rằng dòng giữa "văn bản" và "biểu tượng" có thể gần như không có trên các trang web. Văn bản có thể trông giống như một biểu tượng (như trong ví dụ của Nhật Bản) hoặc một biểu tượng có thể trông giống như văn bản (như trong nút jpg có nội dung "Gửi" hoặc ảnh mèo có chú thích phủ lên) hoặc văn bản có thể được thay thế hoặc tăng cường bằng một hình ảnh thông qua CSS. Văn bản, hình ảnh - ai quan tâm? Đó là tất cả nội dung. Miễn là tất cả mọi người - con người bị suy yếu, trình duyệt bị suy yếu, nhện công cụ tìm kiếm và các loại máy khác có thể hiểu ý nghĩa đó, chúng tôi đã hoàn thành công việc của mình.
Vì vậy, thực tế là các tác giả của thông số kỹ thuật đã không nghĩ (hoặc chọn) để làm rõ điều này không nên trói tay chúng ta khỏi việc làm điều có ý nghĩa và phù hợp với tinh thần của thẻ. Các <a>
thẻ ban đầu được dự định để đưa người sử dụng ở một nơi khác, nhưng bây giờ nó có thể bật lên một hộp đèn. Whoop lớn, phải không? Nếu ai đó đã tìm ra cách bật lên hộp đèn khi nhấp vào trước khi thông số kỹ thuật bắt kịp, họ vẫn nên sử dụng <a>
thẻ, chứ không phải <span>
, ngay cả khi nó không hoàn toàn phù hợp với định nghĩa hiện tại - bởi vì nó gần nhất và là vẫn phù hợp với tinh thần của thẻ ("điều gì đó sẽ xảy ra khi bạn nhấp vào đây"). Tương tự như vậy <i>
- bất kể loại vật gì bạn đặt bên trong nó, hoặc dù bạn sử dụng nó một cách sáng tạo,
2. <i>
Thẻ thêm ý nghĩa ngữ nghĩa cho một yếu tố biểu tượng.
Tùy chọn thay thế để tự mang một lớp biểu tượng là <span>
, tất nhiên không có ý nghĩa ngữ nghĩa nào. Khi một cái máy hỏi <span>
nó chứa cái gì, nó nói, "Tôi không biết. Có thể là bất cứ thứ gì." Nhưng <i>
thẻ nói, "Tôi có một cách khác để nói một cái gì đó hơn so với cách thông thường, hoặc có thể một thuật ngữ không quen thuộc." Điều đó không giống như "Tôi chứa một biểu tượng", nhưng nó gần với nó hơn là <span>
có!
3. Cuối cùng, sử dụng phổ biến làm cho đúng.
Ngoài những điều trên, đáng để xem xét rằng các trình đọc máy (dù là công cụ tìm kiếm, trình đọc màn hình hay bất cứ thứ gì) có thể bắt đầu tính đến việc Facebook, Twitter và các trang web khác sử dụng <i>
thẻ cho các biểu tượng. Họ không quan tâm đến thông số kỹ thuật nhiều như họ quan tâm đến việc trích xuất ý nghĩa từ mã bằng bất kỳ phương tiện nào cần thiết. Vì vậy, họ có thể sử dụng kiến thức về cách sử dụng phổ biến này để ghi lại rằng "có thể có một biểu tượng ở đây" hoặc làm một cái gì đó cao cấp hơn như kích hoạt một cái nhìn vào CSS để gợi ý cho ý nghĩa, hoặc ai biết cái gì. Vì vậy, nếu bạn chọn sử dụng <i>
biểu tượng cho trang web của mình, bạn có thể cung cấp nhiều ý nghĩa hơn thông số kỹ thuật.
Hơn nữa, nếu sử dụng này trở nên phổ biến, nó sẽ có khả năng được đưa vào spec trong tương lai. Sau đó, bạn sẽ duyệt mã của mình, thay thế <span>
bằng <i>
s! Vì vậy, có thể có ý nghĩa để lên tàu với những gì dường như là hướng của thông số kỹ thuật, đặc biệt là khi nó không rõ ràng xung đột với thông số kỹ thuật hiện tại. Việc sử dụng phổ biến có xu hướng ra lệnh cho các quy tắc ngôn ngữ nhiều hơn so với cách khác. Nếu bạn đủ tuổi, bạn có nhớ rằng "Trang web" là cách viết chính thức khi từ này còn mới không? Từ điển khẳng định phải có một khoảng trắng và Web phải được viết hoa. Có những lý do ngữ nghĩa cho điều đó. Nhưng cách sử dụng phổ biến đã nói, "Sao cũng được, thật ngu ngốc. Tôi đang sử dụng 'trang web' vì nó ngắn gọn hơn và trông đẹp hơn." Và không lâu sau,
4. Vì vậy, tôi đang đi trước và sử dụng nó.
Vì vậy, <i>
cung cấp nhiều ý nghĩa hơn cho máy móc vì thông số kỹ thuật, nó cung cấp nhiều ý nghĩa hơn cho con người vì chúng ta dễ dàng liên kết "i" với "biểu tượng" và nó chỉ dài một chữ cái. Thắng lợi! Và nếu bạn đảm bảo bao gồm văn bản tương đương bên trong <i>
thẻ hoặc ngay bên cạnh thẻ (như Twitter hiện), thì trình đọc màn hình sẽ hiểu nơi nhấp để trả lời, liên kết có thể sử dụng được nếu CSS không tải và người đọc tốt thị lực và một trình duyệt phong nha nhìn thấy một biểu tượng đẹp. Với tất cả điều này trong tâm trí, tôi không thấy nhược điểm.
<i class="sm-reply"></i>
.