Mùa hè năm ngoái, tôi đã đọc thông số kỹ thuật HTML5 hoàn chỉnh và mọi thông số kỹ thuật HTML trước đó (ngay cả những thông số bị bỏ rơi) và tất cả các thông số CSS tôi có thể tìm thấy và rất nhiều thông số kỹ thuật XML. Vì tôi yêu thích các tài liệu siêu văn bản giàu ngữ nghĩa, hãy để tôi cung cấp cho bạn ý tưởng đằng sau ngữ nghĩa HTML có liên quan trong HTML5.
Trước HTML5
Trước HTML5, i
và b
đã thực sự lỗi thời. Lý do là về cơ bản họ đã làm việc như thế em
và strong
, tương ứng, nhưng tập trung vào trình bày và không tập trung vào ngữ nghĩa (điều này là xấu).
Thật vậy, i
có nghĩa là văn bản phải được in nghiêng (nó đã nói điều gì đó về cách văn bản sẽ được hiển thị trên màn hình). Mặt khác, em
có nghĩa là văn bản cần được nhấn mạnh (nó đã nói điều gì đó về ngữ nghĩa của văn bản).
Có một sự khác biệt quan trọng về lý thuyết ở đây. Nếu bạn sử dụng em
, tác nhân người dùng (= trình duyệt) biết văn bản cần được nhấn mạnh, do đó, nó có thể hiển thị nó in nghiêng nếu tài liệu được hiển thị trên màn hình (hoặc tất cả chữ hoa nếu không thể định dạng hoặc thậm chí có thể in đậm người dùng thích điều đó), nó có thể phát âm khác đi nếu tài liệu được nói với người dùng, v.v.
Lưu ý rằng sự nhấn mạnh thực sự là về ngữ nghĩa. Ví dụ, các cụm từ
- Con mèo là của tôi (= không phải con chó!)
- Con mèo là tôi . (= không phải của bạn!)
không có cùng ý nghĩa.
Sự khác biệt tương tự áp dụng cho b
(phông chữ đậm) và strong
(nhấn mạnh).
Một nguyên tắc chung của văn bản kỹ thuật số nói chung và tác giả siêu văn bản nói riêng, là bạn nên tách biệt nội dung và phong cách. Trong tác giả siêu văn bản, điều này có nghĩa là nội dung phải có trong tệp HTML và kiểu phải nằm trong tệp CSS (hoặc một số tệp CSS). Một nguyên tắc khác nhưng có liên quan là tài liệu phải phong phú về ngữ nghĩa (như đánh dấu các tiêu đề, chân trang, danh sách, điểm nhấn, địa chỉ, khu vực điều hướng, v.v.). Điều này có một số lợi thế:
- Nó dễ dàng hơn nhiều cho các chương trình máy tính để giải thích tài liệu. Các chương trình này bao gồm trình duyệt, ứng dụng chuyển văn bản thành giọng nói, công cụ tìm kiếm và trợ lý kỹ thuật số. (Ví dụ: trình duyệt có thể cho phép bạn lưu địa chỉ vào sổ địa chỉ của mình, nếu chỉ có nó mới có thể tìm và giải thích nó. Ngoài ra, bạn có thể biết rằng Microsoft Word có thể tạo và tự động cập nhật TOC cho bạn nếu bạn đánh dấu chính xác tiêu đề của mình .)
- Nó dễ dàng hơn nhiều để thay đổi phong cách sau này. (Nếu bạn muốn thay đổi màu của tất cả các tiêu đề cấp ba trong tài liệu 860 trang của mình, bạn có thể thay đổi một dòng trong biểu định kiểu. Nếu bạn có nội dung và bản trình bày hỗn hợp, bạn sẽ phải xem toàn bộ tài liệu theo cách thủ công . Và bạn có thể sẽ bỏ lỡ một hoặc hai tiêu đề, làm cho tài liệu trông không chuyên nghiệp.)
- Bạn có thể sử dụng các bảng định kiểu khác nhau tùy thuộc vào hoàn cảnh (tài liệu đang được hiển thị trên màn hình hoặc được in trên giấy?). Bạn thậm chí có thể để người dùng cuối tự chọn kiểu dáng. (Trang web của tôi cung cấp một số biểu định kiểu thay thế. Trong IE và FF, bạn thay đổi các biểu định kiểu này bằng menu View.)
Vì vậy, trong ngắn hạn, i
và b
không được chấp nhận vì chúng là các thẻ HTML liên quan đến việc trình bày , điều này hoàn toàn sai.
Trong HTML5
Trong HTML5 i
và b
không còn bị phản đối. Thay vào đó, chúng được đưa ra ý nghĩa ngữ nghĩa . Vì vậy, bây giờ họ thực sự về ngữ nghĩa, và không phải về trình bày.
Như trước đây, bạn sử dụng em
để đánh dấu nhấn mạnh: "Con mèo là của tôi." Nhưng bạn sử dụng i
cho hầu hết các trường hợp khác mà bạn sẽ sử dụng chữ nghiêng trong tác phẩm in. Ví dụ:
- Bạn sử dụng
i
để đánh dấu các chỉ định phân loại: "Tôi thích R. norvegicus ."
- Bạn sử dụng
i
để đánh dấu một cụm từ trong một ngôn ngữ khác so với văn bản xung quanh: À la carte
- Bạn sử dụng
i
để đánh dấu một từ khi bạn nói về chính từ đó: " uống vừa là danh từ vừa là động từ"
Đó cũng là một ý tưởng tốt để sử dụng class
thuộc tính để chỉ định cách sử dụng chính xác (cả Google "microformat" và "microdata"). Và, tất nhiên, trong trường hợp thứ hai, bạn thực sự nên sử dụng lang
thuộc tính để chỉ định ngôn ngữ chính xác. ( Ví dụ , một tác nhân chuyển văn bản thành giọng nói có thể phát âm sai văn bản.)
Một năm trước, thông số kỹ thuật HTML5 cũng cho biết cite
nên được sử dụng để đánh dấu tên của sách, phim, vở opera, tranh, v.v.:
- Bạn nghĩ gì về Nymphomaniac ?
Cuối cùng, từ lâu, dfn
được sử dụng để đánh dấu trường hợp xác định của cụm từ trong văn bản (như định nghĩa toán học hoặc định nghĩa của thuật ngữ):
- Một nhóm là một bộ X được trang bị một hoạt động nhị phân duy nhất * sao cho ...
Vì vậy, chữ in nghiêng trong cuốn sách in của bạn, có thể có nghĩa là nhiều thứ khác nhau, được thể hiện bằng bốn thẻ HTML5 khác nhau, điều này thực sự tuyệt vời, vì ngữ nghĩa là tốt, vì tôi đã cố gắng thuyết phục bạn về trước đó. (Ví dụ: bạn có thể yêu cầu trình duyệt của mình lập danh sách tất cả các định nghĩa trong văn bản, để bạn có thể chắc chắn rằng bạn biết tất cả chúng trước khi thi.)
Chuyển sang strong
và b
, đặc tả HTML5 nói rằng strong
nên được sử dụng để đánh dấu một phần quan trọng của văn bản, như cảnh báo hoặc một số từ rất quan trọng để bắt trong câu. Mặt khác, b
nên được sử dụng để đánh dấu những thứ cần dễ tìm thấy trong văn bản, như từ khóa. Tôi cũng sử dụng b
làm tiêu đề trong các mục danh sách (LIs).
<b>
và<i>
không phản đối.