2013-07-30 41 views
6

Giả sử tôi đang viết một bài viết bằng HTML. Ngôn ngữ của bài viết là tiếng Thụy Điển, vì vậy tôi có <html lang="sv">. Bây giờ tôi muốn đánh dấu lên chữ viết tắt đúng cách trong văn bản sau đây:Ngôn ngữ khác nhau trong tiêu đề và nội dung của thẻ HTML ABBR

HTML kan användas till mycket. 

Để kết thúc này, đầu tiên tôi làm

<abbr title="HyperText Markup Language">HTML</abbr> kan användas till mycket. 

một mình Đây không phải là đủ tốt, tuy nhiên, bởi vì ngôn ngữ của thuộc tính title là Tiếng Thụy Điển (sv). Bên cạnh đó là một vấn đề lý thuyết, điều này sẽ làm cho người đọc màn hình phát âm tiêu đề theo một cách rất khó xử. Để khắc phục điều này, tôi có thể làm

<abbr title="HyperText Markup Language" lang="en">HTML</abbr> kan användas 
    till mycket. 

này thậm chí còn tồi tệ hơn, tuy nhiên, kể từ bây giờ các chữ viết tắt 'HTML' sẽ được đọc trong Enligsh thay vì Thụy Điển [như vậy từ một điểm Thụy Điển xem, nó sẽ âm thanh như " ejtsch-ti-emm-ell "thay vì" hå-te-emm-ell "].

Do đó, chữ viết tắt hoặc nội dung văn bản của nút abbr, phải bằng tiếng Thụy Điển, nhưng thuộc tính title phải bằng tiếng Anh. Cách ưa thích (HTML5) để đánh dấu điều này là gì? Có phải là

<abbr title="HyperText Markup Language" lang="en"> 
    <span lang="sv">HTML</span> 
</abbr> kan användas till mycket. 

?

+0

Nếu nó hoạt động theo cách bạn muốn, bằng mọi cách, hãy sử dụng nó.(Tôi không có một trình đọc văn bản Thụy Điển, vì vậy tôi không thể kiểm tra xem nó hoạt động chính xác!) –

+0

Mr Lister: Tôi không có bất kỳ trình đọc màn hình nào để kiểm tra ... Không, đó là cách khác xung quanh. 'từ viết tắt' đã lỗi thời; bạn sử dụng 'abbr' cho tất cả các từ viết tắt ngày hôm nay (tôi chỉ đọc thông số HTML5 từ trên xuống dưới). –

+2

Nhân tiện, có gần 200.000 câu hỏi về HTML ở đây, vì vậy tôi nghĩ bạn đang ở đúng nơi. –

Trả lời

2

Kết luận của bạn là chính xác: Trong đánh dấu ngôn ngữ trong HTML, bạn không thể chỉ ra nội dung của một phần tử bằng ngôn ngữ khác với giá trị thuộc tính của nó, vì lang attribute đặt cả hai. Và giải pháp thay thế là cách bạn đã tìm thấy: sử dụng đánh dấu bên trong cho nội dung. Không có sự khác biệt ở đây giữa HTML 4 và HTML5.

Tuy nhiên, đây là một vấn đề rất lý thuyết.

Đầu tiên, the abbr markup is almost useless trong thực tế. Các từ viết tắt cần được giải thích, khi cần, trong nội dung văn bản bình thường, không phải trong các thuộc tính. Các trình duyệt thoại có thể tùy chọn đọc các giá trị thuộc tính, nhưng ở chế độ bình thường, chúng bỏ qua chúng - những người sử dụng trình duyệt thoại thích đọc nhanh và thường quen với tỷ lệ giọng nói khá cao và viết tắt các từ viết tắt sẽ làm phiền điều này.

Thứ hai, “chữ viết tắt” như “HTML” (thực sự là một tên thích hợp thay vì bất kỳ thứ gì khác) ít khi được viết ra trong lời nói. Bạn sẽ không muốn nghe bài phát biểu như “Phiên bản mới của Ngôn ngữ đánh dấu siêu văn bản là ngôn ngữ đánh dấu siêu văn bản năm, có nhiều tiện ích mở rộng cho ngôn ngữ đánh dấu siêu văn bản bốn.”

Thứ ba, đánh dấu ngôn ngữ phần lớn là chỉ ghi. Trong hầu hết các trường hợp, nó chỉ bị bỏ qua. Google không quan tâm. Các trình duyệt có thể sử dụng nó để quyết định phông chữ mặc định sẽ được sử dụng, nhưng hầu hết các trang đều chỉ định phông chữ của riêng chúng, do đó các giá trị mặc định không quan trọng. Một số trình duyệt thoại có thể nhận ra một vài ngôn ngữ từ các thuộc tính lang, nhưng hầu hết trong số chúng không: họ đọc nội dung theo các quy tắc cho ngôn ngữ được chọn bởi người dùng . Những người sử dụng ngôn ngữ đánh dấu có thể làm cho một sự khác biệt giữa tiếng Anh và tiếng Anh Mỹ, vì vậy nếu bạn vẫn nghĩ rằng đánh dấu ngôn ngữ là có liên quan, hãy xem xét sử dụng lang="en-GB" trong ngữ cảnh này. (Tôi giả định rằng hầu hết mọi người nói tiếng Thụy Điển sẽ thấy Người phát âm nhận được dễ hiểu và tự nhiên hơn người Mỹ Tiêu chuẩn, nhưng tôi có thể sai.)

+1

Cảm ơn câu trả lời của bạn và +1. Tôi chỉ muốn thêm một điều: Tôi tin rằng việc đánh dấu các từ viết tắt không phải là * chỉ *, có thể thậm chí không * chủ yếu *, vì lợi ích của trình đọc màn hình. Cách tôi nhìn thấy nó, nó có thể rất hữu ích cho những người không quen thuộc với thuật ngữ (nếu trang chủ yếu nhắm vào những người * quen thuộc với nó), đặc biệt nếu không có sự đánh dấu giữa tập hợp các từ viết tắt và được viết ra văn bản. Ví dụ, 'CAD' có nghĩa là 'bệnh động mạch vành' hay 'thiết kế hỗ trợ máy tính'? Nếu văn bản nhắm đến những người hay những người chuyên nghiệp về máy tính, bạn có thể không đánh vần nó ra –

+1

Ngoài ra, ngay cả khi bạn (về cơ bản) biết chữ viết tắt là gì, bạn có thể muốn kiểm tra chính tả chính tả của văn bản, và sau đó thuận tiện để có nó trong 'tiêu đề'. –

+0

Việc triển khai thuộc tính 'title' trong trình duyệt rất tệ (văn bản nhỏ biến mất vv) và tác giả ngày càng sử dụng" chú giải CSS "(ví dụ: sử dụng phần tử ban đầu bị ẩn nhưng sẽ hiển thị khi một phần tử được kết nối). Cách tiếp cận như vậy không có vấn đề đánh dấu ngôn ngữ được thảo luận ở đây, vì nội dung văn bản không xuất hiện trong thuộc tính mà là nội dung phần tử. –

Các vấn đề liên quan