Hỗ trợ tiếp cận nội dung đa phương tiện

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Trong bài viết này, bạn sẽ tìm hiểu về định dạng WebVTT (Video văn bản trên web), được dùng để mô tả dữ liệu văn bản theo thời gian như phụ đề nhằm giúp khán giả dễ tiếp cận video hơn.

Khả năng hỗ trợ tiếp cận không giống như phủ lên chiếc bánh. Đó không phải là bất cứ thứ gì bạn mặc tồn đọng với hy vọng được giới thiệu trong tương lai. Phụ đề và trình đọc màn hình mô tả là cách duy nhất để nhiều người dùng trải nghiệm video của bạn và trong một số khu vực tài phán, thậm chí còn được luật pháp hoặc quy định yêu cầu.

Thêm <track> thẻ

Để thêm phụ đề hoặc nội dung mô tả về trình đọc màn hình vào video trên web, hãy thêm <track> trong thẻ <video>. Ngoài phụ đề và trình đọc màn hình bạn cũng có thể dùng thẻ <track> cho phụ đề và tiêu đề chương. Thẻ <track> cũng có thể giúp các công cụ tìm kiếm hiểu được nội dung trong video. Tuy nhiên, các khả năng đó nằm ngoài phạm vi của bài viết này.

Ảnh chụp màn hình cho thấy các phụ đề hiển thị bằng thành phần bản nhạc trong Chrome trên Android
Ảnh chụp màn hình cho thấy chú thích hiển thị bằng phần tử theo dõi trong Chrome trên Android

Thẻ <track> tương tự như phần tử <source> ở chỗ cả hai đều có src trỏ đến nội dung được tham chiếu. Đối với thẻ <track>, thẻ này trỏ đến một Tệp WebVTT. Thuộc tính label chỉ định cách một bản nhạc cụ thể sẽ được xác định trong giao diện.

Để cung cấp các kênh cho nhiều ngôn ngữ, hãy thêm một thẻ <track> riêng cho từng ngôn ngữ WebVTT bạn đang cung cấp và cho biết ngôn ngữ bằng srclang .

Dưới đây là ví dụ về một thẻ <video> có hai thẻ <track>. Ngoài ra còn có mẫu mà bạn có thể xem trên Glitch (nguồn).

Thêm một phần tử <track> làm phần tử con của phần tử <video>:

<video controls>
  <source src="https://storage.googleapis.com/webfundamentals-assets/videos/chrome.webm" type="video/webm" />
  <source src="https://storage.googleapis.com/webfundamentals-assets/videos/chrome.mp4" type="video/mp4" />
  <track src="chrome-subtitles-en.vtt" label="English captions" kind="captions" srclang="en" default>
  <track src="chrome-subtitles-zh.vtt" label="中文字幕" kind="captions" srclang="zh">
  <p>This browser does not support the video element.</p>
</video>

Cấu trúc tệp WebVTT

Dưới đây là tệp WebVTT giả định cho bản minh hoạ được liên kết ở trên. Tệp này là tệp văn bản chứa một loạt lời nhắc. Mỗi lời nhắc là một khối văn bản cần hiển thị trên màn hình và khoảng thời gian hiển thị ảnh.

WEBVTT

00:00.000 --> 00:04.999
Man sitting on a tree branch, using a laptop.

00:05.000 --> 00:08.000
The branch breaks, and he starts to fall.

...

Mỗi mục trong tệp theo dõi được gọi là một cue. Mỗi tín hiệu có một thời gian bắt đầu và thời gian kết thúc được phân tách bằng một mũi tên, với văn bản gợi ý trong dòng bên dưới. Lời nhắc có thể cũng có các mã nhận dạng như railroadmanuscript trong ví dụ bên dưới (không bắt buộc). Các lời nhắc được phân tách bằng một dòng trống.

WEBVTT

railroad
00:00:10.000 --> 00:00:12.500
Left uninspired by the crust of railroad earth

manuscript
00:00:13.200 --> 00:00:16.900
that touched the lead to the pages of your manuscript.

Thời gian báo cáo có định dạng hours:minutes:seconds.milliseconds. Việc phân tích cú pháp rất nghiêm ngặt. Nghĩa là, các số phải được đệm bằng 0 nếu cần: giờ, phút và giây phải có hai chữ số (00 cho giá trị không) và mili giây phải có ba chữ số (000 cho giá trị không). Có một trình xác thực WebVTT tuyệt vời tại Trình xác thực WebVTT trực tiếp, giúp kiểm tra lỗi trong quá trình định dạng thời gian và các vấn đề như thời gian không tuần tự.

Bạn có thể tạo tệp VTT theo cách thủ công, vì có nhiều dịch vụ sẽ tạo các ứng dụng đó cho bạn.

Như bạn có thể thấy trong các ví dụ trước, định dạng WebVTT khá đơn giản. Bạn chỉ cần thêm dữ liệu văn bản cùng với dấu thời gian.

Tuy nhiên, nếu bạn muốn phụ đề hiển thị ở một vị trí khác với căn trái hay phải? Phụ đề cần chỉnh cho khớp với người đang nói hoặc để tránh văn bản trong máy ảnh. WebVTT xác định các chế độ cài đặt để thực hiện việc đó, và nhiều dịch vụ khác, ngay bên trong Tệp .vtt. Ghi lại cách xác định vị trí phụ đề bằng cách thêm các cài đặt sau định nghĩa khoảng thời gian.

WEBVTT

00:00:05.000 --> 00:00:10.000 line:0 position:20% size:60% align:start
The first line of the subtitles.

Một tính năng tiện lợi khác là khả năng tạo kiểu cho tín hiệu bằng CSS. Có thể bạn muốn để sử dụng dải chuyển tiếp tuyến tính màu xám làm nền, với màu nền trước là papayawhip cho tất cả phụ đề và tất cả văn bản in đậm được tô màu peachpuff.

video::cue {
  background-image: linear-gradient(to bottom, dimgray, lightgray);
  color: papayawhip;
}

video::cue(b) {
  color: peachpuff;
}

Nếu bạn muốn tìm hiểu thêm về cách tạo kiểu và gắn thẻ cho từng người Thông số kỹ thuật WebVTT là một nguồn tốt cho các ví dụ nâng cao.

Các loại đoạn văn bản

Bạn có để ý thấy thuộc tính kind của phần tử <track> không? Dùng để cho biết mối liên hệ giữa đoạn văn bản cụ thể đó với video. Chiến lược phát hành đĩa đơn có thể có các giá trị sau đây của thuộc tính kind:

  • captions: Đối với phụ đề từ bản chép lời và có thể là bản dịch của bất kỳ âm thanh nào. Phù hợp với người khiếm thính và trong trường hợp đang xem video đang phát bị tắt tiếng.
  • subtitles: Đối với phụ đề, bản dịch lời nói và văn bản trong ngôn ngữ khác với ngôn ngữ chính của video.
  • descriptions: Dành cho phần mô tả các phần hình ảnh trong nội dung video. Phù hợp với người khiếm thị.
  • chapters: Nhằm hiển thị khi người dùng đang điều hướng trong video.
  • metadata: Không hiển thị và có thể bị tập lệnh sử dụng.

Giờ bạn đã hiểu những kiến thức cơ bản về cách cung cấp và truy cập vào một video trên trang web của mình, bạn có thể thắc mắc về các trường hợp sử dụng phức tạp hơn. Tiếp theo, bạn sẽ quan tâm đến khung nội dung đa phương tiện và cách họ có thể giúp bạn bổ sung video lên trang web của mình, đồng thời cung cấp các tính năng nâng cao.