Hỗ trợ tiếp cận ở chế độ Kiosk

Chế độ kiosk của ChromeOS chạy một ứng dụng và khoá ứng dụng đó ở chế độ toàn màn hình mà không cần người dùng đăng nhập. Chế độ kiosk mang đến một cách thức thuận tiện và hiệu quả để mọi người truy cập thông tin và dịch vụ một cách có kiểm soát và tập trung. Tuy nhiên, vì trải nghiệm ở chế độ ki-ốt được kiểm soát chặt chẽ, nên bạn cần đảm bảo rằng mọi người đều có thể truy cập vào các ứng dụng ở chế độ ki-ốt. Việc cải thiện khả năng hỗ trợ tiếp cận của ki-ốt có thể giúp mở rộng phạm vi tiếp cận bằng cách giảm các rào cản đối với việc truy cập thông tin và cải thiện mức độ hài lòng của khách hàng bằng cách thúc đẩy tính toàn diện.

Các ứng dụng chạy ở chế độ kiosk là ứng dụng web, vì vậy, các phương pháp hay nhất về khả năng hỗ trợ tiếp cận trên web sẽ áp dụng cho các ứng dụng này:

  • Tuân thủ Nguyên tắc hỗ trợ tiếp cận nội dung web (WCAG 2). Ngay cả khi triển khai ứng dụng ki-ốt nội bộ, cách tốt nhất để đảm bảo khả năng hỗ trợ tiếp cận (chẳng hạn như khả năng sử dụng trình đọc màn hình) là tuân thủ WCAG 2. Bạn cũng có thể tận dụng các tài nguyên thiết kế và phát triển tuyệt vời khác của những người làm việc trong lĩnh vực hỗ trợ tiếp cận để cải thiện ứng dụng Kiosk của mình:
  • Cung cấp nhiều phương thức nhập. Đừng dựa vào chế độ thao tác bằng cử chỉ. Người dùng có thể cần bàn phím, chuột hoặc công tắc để tương tác với ứng dụng.
  • Cung cấp nhiều dạng đầu ra. Đừng chỉ dựa vào một loại đầu ra, chẳng hạn như âm thanh. Người dùng có thể cần tương tác hoàn toàn với một ứng dụng mà không có âm thanh hoặc hoàn toàn không có tín hiệu trực quan.
  • Kiểm thử ứng dụng và phần cứng của ứng dụng với nhiều đối tượng. Đừng chỉ dựa vào việc đáp ứng các phương pháp hay nhất: hãy kiểm thử các phương pháp đó. Người dùng cần tương tác cả về thể chất và kỹ thuật số với một ứng dụng kiosk. Thử nghiệm trải nghiệm sẽ xác định những điểm cần cải thiện.
    • Đảm bảo rằng bạn có một nhóm người dùng thử nghiệm đa dạng để phát hiện các vấn đề tiềm ẩn về khả năng hỗ trợ tiếp cận.
    • Kiểm thử ứng dụng kiosk tại chỗ – trong môi trường và trên phần cứng mà ứng dụng sẽ được dùng.

Vì các ứng dụng kiosk chạy trong một môi trường được kiểm soát, nên người dùng có thể không truy cập được vào các tính năng hỗ trợ tiếp cận hoặc lựa chọn phần cứng mà họ thường dùng trên ChromeOS. Đối với chế độ hỗ trợ tiếp cận của kiosk ChromeOS, bạn cần cân nhắc 3 cấp độ kiểm soát:

  • Chính sách: Quản trị viên kiểm soát các chính sách của thiết bị do họ quản lý, bao gồm cả quyền truy cập vào các chế độ cài đặt hỗ trợ tiếp cận thiết yếu của chế độ ki-ốt.
  • API: Nhà phát triển có thể kiểm soát cách người dùng tương tác với ứng dụng ki-ốt của họ bằng một tiện ích đồng hành gọi chrome.accessibilityFeatures API.
  • Thiết bị phần cứng: Loại thiết bị và các thiết bị ngoại vi được kết nối sẽ kiểm soát cách người dùng tương tác thực tế với ki-ốt, bao gồm cả thiết bị đầu vào, kích thước màn hình và nền tảng.

Các cấp độ này phụ thuộc lẫn nhau rất nhiều và do đó phải hoạt động đồng bộ để mang lại trải nghiệm ứng dụng kiosk thực sự dễ tiếp cận. Quản trị viên phải cân nhắc khả năng hỗ trợ tiếp cận khi triển khai ứng dụng ở chế độ ki-ốt và nhà phát triển phải biết được tác động của các chế độ cài đặt quản trị đối với ứng dụng của họ sau khi triển khai.

Chế độ kiểm soát chính sách dành cho quản trị viên chế độ kiosk

Trong phiên người dùng thông thường trên thiết bị ChromeOS, người dùng có thể quản lý chế độ cài đặt hỗ trợ tiếp cận bằng cách chuyển đến phần Hỗ trợ tiếp cận trong ứng dụng Cài đặt. Theo mặc định, người dùng không có quyền truy cập vào ứng dụng Cài đặt ở chế độ kiosk. Thay vào đó, quản trị viên sẽ cần bật chế độ cài đặt hỗ trợ tiếp cận để cho phép người dùng truy cập vào các chế độ cài đặt này khi ở chế độ kiosk.

Quản trị viên có thể tìm thấy chế độ cài đặt "Hỗ trợ tiếp cận cho chế độ ki-ốt" trong Bảng điều khiển dành cho quản trị viên của Google bằng cách chuyển đến thẻ Thiết bị > Chrome > Cài đặt > Cài đặt thiết bị.

Có 2 chế độ cài đặt chính mà bạn cần lưu ý:

  • Trình đơn hỗ trợ tiếp cận nổi trong kiosk: Vì ứng dụng Cài đặt không có sẵn ở chế độ kiosk, nên việc bật chế độ này sẽ cho phép người dùng bật/tắt chế độ cài đặt hỗ trợ tiếp cận thông qua trình đơn hỗ trợ tiếp cận nổi. Hành vi mặc định khi bạn không định cấu hình chế độ cài đặt này là trình đơn hỗ trợ tiếp cận nổi sẽ không xuất hiện.
  • Lối tắt hỗ trợ tiếp cận ở chế độ Kiosk: Khi bật chế độ này, người dùng có thể bật các tính năng hỗ trợ tiếp cận bằng phím tắt. Tuy nhiên, xin lưu ý rằng không phải tính năng nào cũng có phím tắt tương ứng. Hành vi mặc định khi bạn không định cấu hình chế độ cài đặt này là phím tắt sẽ được bật.

Bạn cũng có thể định cấu hình từng tính năng hỗ trợ tiếp cận. Theo mặc định, các chế độ cài đặt này được định cấu hình thành "Cho phép người dùng quyết định", tức là người dùng có thể bật hoặc tắt các tính năng hỗ trợ tiếp cận tuỳ ý.

Lưu ý: Xem danh sách đầy đủ các tính năng hỗ trợ tiếp cận của ChromeOS để tìm hiểu thêm về hành vi của từng chế độ cài đặt.

Tiện ích Chrome chrome.accessibilityFeatures API

Ở chế độ kiosk, người dùng có thể bật/tắt các tính năng hỗ trợ tiếp cận bằng cách sử dụng trình đơn hỗ trợ tiếp cận nổi trong kiosk hoặc bằng phím tắt tương ứng. Tuy nhiên, điều này phụ thuộc vào việc quản trị viên của họ đã bật trình đơn hay chưa và không phải tính năng nào cũng có lối tắt. Do đó, nhà phát triển nên tích hợp chế độ cài đặt hỗ trợ tiếp cận trực tiếp vào ứng dụng kiosk của họ khi thích hợp. Ví dụ: cho phép người dùng sử dụng tính năng đọc chính tả khi giao diện nhập văn bản xuất hiện.

Bạn có thể truy cập vào trạng thái của các tính năng hỗ trợ tiếp cận trên ChromeOS thông qua chrome.accessibilityFeatures API. Khi được thiết lập thành "Cho phép người dùng quyết định" trong bảng điều khiển dành cho quản trị viên, bạn cũng có thể kiểm soát các tính năng hỗ trợ tiếp cận thông qua API này. Đây là một API tiện ích của Chrome nên phải được gọi từ một tiện ích đồng hành chạy cùng với một ứng dụng kiosk. Nhà phát triển có thể sử dụng API này để kiểm tra xem mỗi chế độ cài đặt có thể kiểm soát được hay không và tương tác với các chức năng hỗ trợ tiếp cận tương ứng được tích hợp sẵn trên ChromeOS.

API chrome.accessibilityFeatures có một thuộc tính tương ứng cho từng tính năng hỗ trợ tiếp cận. Mỗi thuộc tính là một type.ChromeSetting nguyên mẫu có các phương thức sau:

  • get(): để lấy giá trị của chế độ cài đặt.
  • set(): để đặt giá trị của chế độ cài đặt.
  • onChange(): để thêm một trình nghe khi chế độ cài đặt thay đổi.
  • clear(): để xoá chế độ cài đặt và khôi phục các giá trị mặc định.

Để biết trạng thái của một tài sản, hãy gọi onChange() hoặc get(). Các phương thức này sẽ trả về một đối tượng chi tiết thông qua một lệnh gọi lại với các trường liên quan sau:

  • levelOfControl: Mức độ kiểm soát của chế độ cài đặt. Kiểm tra xem tiện ích của bạn có thể kiểm soát chế độ cài đặt hay không trước khi gọi set() để thay đổi giá trị của chế độ cài đặt. Xin lưu ý rằng nếu quản trị viên có chính sách rõ ràng để tắt hoặc bật một chế độ cài đặt, thì levelOfControl sẽ là not_controllable và bạn sẽ không thể định cấu hình chế độ cài đặt đó bằng API.
  • value: Giá trị của chế độ cài đặt. Tất cả các thuộc tính của tính năng hỗ trợ tiếp cận đều thuộc loại boolean, ngoại trừ animationPolicy là một enum bao gồm allowed, once hoặc none.

Ví dụ: hãy bật/tắt tính năng bàn phím ảo bằng cách kiểm tra xem tiện ích này có thể định cấu hình thuộc tính hay không.

const virtualKeyboard = chrome.accessibilityFeatures.virtualKeyboard;
virtualKeyboard.get({},
	(details) => {
		// check the level of control for virtual keyboard
		if (details.levelOfControl == 'controllable_by_this_extension' || details.levelOfControl == 'controlled_by_this_extension') {
			// disable if virtualKeyboard is currently on
			if (details.value) {
				virtualKeyboard.set({value: false}, () => console.log('Virtual keyboard has been disabled');
			} else { // enable if virtualKeyboard is currently off
				virtualKeyboard.set({value: true}, () => console.log('Virtual keyboard has been enabled');
			}
		} else {
			// the setting is not controllable by this extension because it cannot be controlled by any extension or it's being controlled by an extension with higher precedence
			console.log('Virtual keyboard setting cannot be changed.');


		}

Trước tiên, hãy gọi get() trên thuộc tính virtualKeyboard để đọc cấp độ kiểm soát hiện có và giá trị hiện tại của thuộc tính. Nếu có thể được tiện ích này kiểm soát hoặc đã được tiện ích này kiểm soát, thì bạn có thể gọi set() và chuyển đổi giá trị thuộc tính virtualKeyboard một cách an toàn. Nếu không thể kiểm soát tài sản, hãy thông báo cho người dùng rằng họ không thể bật/tắt chế độ cài đặt này và đề nghị họ liên hệ với quản trị viên hệ thống (nếu phù hợp).

Các thuộc tính có thể được định cấu hình bằng API chrome.accessibilityFeatures được nhóm thành các danh mục sau: chuyển văn bản sang lời nói, màn hình và độ phóng đại, bàn phím và phương thức nhập văn bản, con trỏ và bàn di chuột.

Chuyển văn bản thành giọng nói

Các tính năng chuyển văn bản sang lời nói cho phép đọc to văn bản trên màn hình bằng trình đọc màn hình tích hợp của ChromeOS. Cho dù người dùng bị suy giảm thị lực, không đọc được hoặc thích nghe văn bản hơn là đọc, những tính năng này đều cho phép người dùng tương tác với thiết bị.

  • selectToSpeak: Kiểm soát tính năng chọn để nói, cho phép người dùng chọn văn bản trên màn hình để đọc to.
  • spokenFeedback: Điều khiển tính năng ChromeVox, một trình đọc màn hình đọc to văn bản trên màn hình, cũng như tên của các nút, đường liên kết và các phần tử khác.

Màn hình và tính năng phóng to

Các tính năng hiển thị và phóng to giúp thay đổi màu sắc hiển thị và cung cấp các lựa chọn phóng to để màn hình dễ đọc hơn và các đối tượng dễ tìm hơn.

  • highContrast: Điều khiển tính năng đảo màu để thay đổi bảng phối màu thành bảng phối màu có độ tương phản cao hơn.
  • screenMagnifier: Điều khiển tính năng phóng to toàn màn hình để phóng to các mục trên màn hình.
  • dockedMagnifier: Điều khiển tính năng kính lúp ở vị trí cố định, giúp phóng to các vùng được lấy tiêu điểm trên màn hình ở chế độ xem chia đôi màn hình.

Bàn phím và phương thức nhập văn bản

Các tính năng bàn phím và nhập văn bản mang đến cho người dùng nhiều lựa chọn để tương tác với nội dung và các mục nhập trên màn hình.

  • virtualKeyboard: Thuộc tính này kiểm soát tính năng bàn phím ảo, cho phép người dùng nhập dữ liệu mà không cần dùng bàn phím thực.
  • dictation: Thuộc tính này kiểm soát tính năng nhập bằng giọng nói, cho phép người dùng nhập văn bản bằng cách nói vào micrô, điều khiển dữ liệu đầu vào bằng giọng nói.
  • switchAccess: Thuộc tính này kiểm soát tính năng tiếp cận bằng công tắc, cho phép người dùng điều khiển thiết bị bằng công tắc (các phím trên bàn phím, nút trên tay cầm chơi game và các thiết bị công tắc chuyên dụng khác).
  • stickyKeys: Thuộc tính này kiểm soát tính năng phím cố định, cho phép người dùng nhấn từng phím một để dùng phím tắt thay vì nhấn và giữ nhiều phím cùng lúc.
  • focusHighlight: Thuộc tính này kiểm soát tính năng làm nổi bật tiêu điểm bàn phím. Tính năng này sẽ làm nổi bật đối tượng có tiêu điểm bàn phím. Người dùng di chuyển qua các đối tượng bằng phím tab hoặc chọn bằng con trỏ chuột.
  • caretHighlight: Thuộc tính này kiểm soát tính năng làm nổi bật con trỏ văn bản (dấu nháy). Tính năng này sẽ hiện một vòng tiêu điểm xung quanh con trỏ văn bản khi con trỏ xuất hiện hoặc di chuyển.

Con trỏ

Các tính năng con trỏ giúp tuỳ chỉnh con trỏ để dễ tìm thấy và dễ sử dụng hơn trên màn hình.

  • autoclick: Thuộc tính này kiểm soát tính năng nhấp chuột tự động, cho phép con trỏ chuột tự động nhấp vào vị trí dừng.
  • largeCursor: Thuộc tính này kiểm soát tính năng con trỏ lớn, giúp tăng kích thước con trỏ chuột để dễ nhìn thấy hơn.
  • cursorColor: Thuộc tính này kiểm soát tính năng màu con trỏ. Giá trị của thuộc tính cursorColor chỉ cho biết tính năng này có được bật hay không. Chế độ này không cho biết màu con trỏ.
  • cursorHighlight: Thuộc tính này kiểm soát tính năng làm nổi bật con trỏ. Tính năng này sẽ hiện một vòng tiêu điểm xung quanh con trỏ chuột khi con trỏ di chuyển.

Hỗ trợ tiếp cận ở chế độ Kiosk ở cấp phần cứng

Giống như các ứng dụng khác, khả năng hỗ trợ tiếp cận của một ứng dụng ki-ốt cũng chịu ảnh hưởng của thiết bị mà ứng dụng đó được triển khai. Nhà phát triển phải làm việc thêm với nhóm phần cứng của họ để đảm bảo rằng ứng dụng ki-ốt của họ có thể truy cập ở cấp phần cứng.

Bạn có thể cài đặt ứng dụng kiosk trên mọi hệ thống ChromeOS, từ màn hình không tương tác đến nền tảng tương tác. Bất cứ khi nào người dùng dự kiến sẽ tương tác với một ứng dụng ki-ốt, bạn nên tuân thủ một số tiêu chuẩn trợ năng ở cấp phần cứng:

  • Những người có thể đang sử dụng xe lăn hoặc thiết bị hỗ trợ di chuyển tương tự phải có thể tiếp cận và sử dụng các ứng dụng trên ki-ốt.
  • Phần cứng của ki-ốt phải có lựa chọn sử dụng chuột và bàn phím thực.
  • Ứng dụng trên ki-ốt phải có giắc cắm tai nghe và hỗ trợ micrô.
  • Phần cứng của ki-ốt phải có màn hình với kích thước và độ phân giải đủ để đảm bảo văn bản và hình ảnh rõ ràng và dễ nhìn.

Khả năng hỗ trợ tiếp cận của chế độ ki-ốt phụ thuộc vào nhiều yếu tố: các chế độ kiểm soát chính sách, API và phần cứng. Nhưng về cơ bản, khả năng hỗ trợ tiếp cận của kiosk là khả năng hỗ trợ tiếp cận của web. Để cải thiện khả năng hỗ trợ tiếp cận trong ứng dụng ki-ốt, hãy làm theo các đề xuất và phương pháp hay nhất ở trên, tiến hành kiểm thử người dùng kỹ lưỡng và xem xét các nguyên tắc WCAG 2.