حالت کیوسک ChromeOS یک برنامه را اجرا میکند و آن را در حالت تمام صفحه قفل میکند، بدون نیاز به ورود کاربر. حالت کیوسک روشی راحت و کارآمد برای افراد فراهم میکند تا به اطلاعات و خدمات به شیوهای کنترلشده و متمرکز دسترسی داشته باشند. اما از آنجا که تجربه حالت کیوسک به شدت کنترل میشود، مهم است که اطمینان حاصل شود که برنامههای کیوسک برای همه قابل دسترسی هستند. بهبود دسترسی به کیوسک میتواند با کاهش موانع دسترسی به اطلاعات، به گسترش دسترسی کمک کند و با تقویت شمول، رضایت مشتری را بهبود بخشد.
برنامههایی که در حالت کیوسک اجرا میشوند، برنامههای وب هستند، بنابراین بهترین شیوههای دسترسی به وب برای آنها اعمال میشود:
- دستورالعملهای دسترسی به محتوای وب ( WCAG 2 ) را دنبال کنید. حتی هنگام استقرار برنامههای کیوسک به صورت داخلی، بهترین راه برای اطمینان از دسترسیپذیری - مانند قابلیت استفاده از صفحهخوان - پیروی از WCAG 2 است. همچنین میتوانید از سایر منابع عالی طراحی و توسعه از کسانی که در زمینه دسترسیپذیری کار میکنند، برای بهبود برنامه کیوسک خود استفاده کنید:
- دولت بریتانیا بایدها و نبایدهای کلی در طراحی برای کاربرانی که نیازهای دسترسی دارند ، از جمله کاربران کمبینا و کمشنوا، ارائه میدهد.
- Web.dev اطلاعاتی در مورد معنای دسترسیپذیری در توسعه وب و اهمیت آن ارائه میدهد.
- طراحی متریال توصیههایی را برای دسترسیپذیری در طراحی به اشتراک میگذارد.
- روشهای ورودی متعددی ارائه دهید. به ناوبری مبتنی بر ژستهای حرکتی تکیه نکنید. کاربران ممکن است برای تعامل با برنامه به صفحه کلید، ماوس یا سوئیچ نیاز داشته باشند.
- چندین نوع خروجی ارائه دهید. به یک نوع خروجی، مانند صدا، تکیه نکنید. کاربران ممکن است نیاز داشته باشند که کاملاً بدون صدا یا کاملاً بدون نشانههای بصری با یک برنامه تعامل داشته باشند.
- اپلیکیشن و سختافزار آن را با مخاطبان متنوعی آزمایش کنید. صرفاً به رعایت بهترین شیوهها اکتفا نکنید: آنها را آزمایش کنید. کاربران باید هم به صورت فیزیکی و هم به صورت دیجیتالی با اپلیکیشن کیوسک تعامل داشته باشند. آزمایش تجربه، زمینههای بهبود را شناسایی میکند.
- مطمئن شوید که گروه متنوعی از کاربران آزمایشی را در نظر گرفتهاید تا مشکلات احتمالی دسترسیپذیری آشکار شود.
- اپلیکیشن کیوسک را در محل - در محیط و روی سختافزاری که قرار است با آن استفاده شود - آزمایش کنید.
از آنجا که برنامههای کیوسک در یک محیط کنترلشده اجرا میشوند، ممکن است کاربران نتوانند به ویژگیهای دسترسی ChromeOS یا گزینههای سختافزاری که معمولاً استفاده میکنند، دسترسی پیدا کنند. وقتی صحبت از دسترسی به کیوسک ChromeOS میشود، سه سطح کنترل وجود دارد که باید در نظر گرفته شود:
- سیاستها: مدیران، سیاستهای دستگاههای مدیریتشده خود، از جمله دسترسی به تنظیمات دسترسی ضروری کیوسک را کنترل میکنند.
- APIها: توسعهدهندگان میتوانند نحوه تعامل کاربر با برنامه کیوسک خود را با یک افزونه همراه که API مربوط به chrome.accessibilityFeatures را فراخوانی میکند، کنترل کنند.
- دستگاههای سختافزاری: نوع دستگاه و لوازم جانبی متصل، نحوه تعامل فیزیکی کاربر با کیوسک، از جمله دستگاههای ورودی، اندازه صفحه نمایش و پلتفرمها را کنترل میکنند.
این سطوح بسیار به هم وابسته هستند و بنابراین باید به طور هماهنگ عمل کنند تا یک تجربه واقعاً قابل دسترس از برنامه کیوسک ارائه دهند. مدیران باید هنگام استقرار برنامههای کیوسک، قابلیت دسترسی را در نظر بگیرند - و توسعهدهندگان باید از تأثیری که تنظیمات مدیریتی میتواند بر برنامه آنها پس از استقرار داشته باشد، آگاه باشند.
کنترلهای خطمشی برای مدیران کیوسک
در یک دستگاه ChromeOS در یک جلسه کاربری معمولی، کاربران میتوانند تنظیمات دسترسی خود را با رفتن به بخش دسترسی در برنامه تنظیمات مدیریت کنند. در حالت کیوسک، کاربران به طور پیشفرض به برنامه تنظیمات دسترسی ندارند. در عوض، مدیران باید تنظیمات دسترسی را فعال کنند تا کاربران در حالت کیوسک به آنها دسترسی داشته باشند.
مدیران میتوانند تنظیمات «دسترسی به کیوسک» را در کنسول مدیریت گوگل با رفتن به بخش دستگاهها > کروم > تنظیمات > تب تنظیمات دستگاه پیدا کنند.
دو تنظیم اصلی وجود دارد که باید به آنها توجه کنید:
- منوی شناور دسترسی کیوسک : از آنجا که برنامه تنظیمات در حالت کیوسک به راحتی در دسترس نیست، فعال کردن این گزینه به کاربران امکان میدهد تنظیمات دسترسی را از طریق یک منوی شناور تغییر دهند. رفتار پیشفرض زمانی که این تنظیم پیکربندی نشده باشد این است که منوی شناور دسترسی نمایش داده نمیشود.
- میانبرهای دسترسی کیوسک : فعال کردن این گزینه به کاربران امکان میدهد ویژگیهای دسترسی را با استفاده از میانبرهای صفحهکلید فعال کنند. البته به خاطر داشته باشید که همه ویژگیها میانبر مربوطه را ندارند. رفتار پیشفرض در صورت عدم پیکربندی این تنظیم، فعال بودن میانبرها است.
همچنین میتوانید ویژگیهای دسترسی را به صورت جداگانه پیکربندی کنید. به طور پیشفرض، آنها روی «اجازه به کاربر برای تصمیمگیری» پیکربندی شدهاند و این به کاربر اجازه میدهد تا ویژگیهای دسترسی را به دلخواه خود فعال یا غیرفعال کند.
توجه: برای کسب اطلاعات بیشتر در مورد عملکرد هر تنظیم، فهرست کامل ویژگیهای دسترسی ChromeOS را مشاهده کنید.
افزونه کروم chrome.accessibilityFeatures API
در حالت کیوسک، کاربران میتوانند ویژگیهای دسترسی را با استفاده از منوی شناور دسترسی کیوسک یا با میانبرهای صفحهکلید مربوطه تغییر دهند. اما این امر به فعال کردن منو توسط مدیر آنها بستگی دارد و همه ویژگیها دارای میانبر نیستند. بنابراین، یک توسعهدهنده باید در صورت لزوم تنظیمات دسترسی را مستقیماً در برنامه کیوسک خود ادغام کند. به عنوان مثال، به کاربران این امکان را بدهد که هنگام نمایش ورودی متن، از دیکته استفاده کنند.
وضعیت ویژگیهای دسترسی ChromeOS از طریق API مربوط به chrome.accessibilityFeatures قابل دسترسی است. در صورت پیکربندی روی «اجازه به کاربر برای تصمیمگیری» در کنسول مدیریت، میتوان ویژگیهای دسترسی را از طریق این API نیز کنترل کرد. این یک API افزونه Chrome است، بنابراین باید از یک افزونه همراه که با یک برنامه kiosk اجرا میشود، فراخوانی شود. توسعهدهندگان میتوانند از این API برای بررسی قابل کنترل بودن هر تنظیم و تعامل با توابع دسترسی داخلی ChromeOS مربوطه استفاده کنند.
API مربوط به chrome.accessibilityFeatures برای هر ویژگی دسترسی، یک ویژگی متناظر دارد. هر ویژگی یک نمونه اولیه از type.ChromeSetting است که دارای متدهای زیر است:
-
get(): برای دریافت مقدار تنظیمات. -
set(): برای تنظیم مقدار تنظیمات. -
onChange(): برای اضافه کردن یک شنونده برای زمانی که تنظیمات تغییر میکنند. -
clear(): برای پاک کردن تنظیمات و بازیابی مقادیر پیشفرض.
برای دریافت وضعیت یک ویژگی، متدهای onChange() یا get() را فراخوانی کنید که یک شیء جزئیات را از طریق یک فراخوانی برگشتی با فیلدهای مرتبط زیر برمیگرداند:
-
levelOfControl: سطح کنترل تنظیمات. قبل از فراخوانیset()برای تغییر مقدار یک تنظیم، بررسی کنید که آیا این تنظیم میتواند توسط افزونه شما کنترل شود یا خیر. به خاطر داشته باشید که اگر مدیر سیاست صریحی برای غیرفعال کردن یا فعال کردن یک تنظیم داشته باشد،levelOfControlبرابرnot_controllableخواهد بود و شما قادر به پیکربندی آن با API نخواهید بود. -
value: مقدار تنظیم. همه ویژگیهای ویژگی دسترسی از نوع بولی هستند به جزanimationPolicyکه یک enum متشکل ازallowed،onceیاnoneاست.
به عنوان مثال، بیایید ویژگی صفحه کلید مجازی را با بررسی اینکه آیا این ویژگی توسط این افزونه قابل تنظیم است یا خیر، فعال یا غیرفعال کنیم.
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.'); }
ابتدا تابع get() روی ویژگی virtualKeyboard فراخوانی کنید تا سطح کنترل موجود و مقدار فعلی ویژگی را بخوانید. اگر میتوان آن را توسط این افزونه کنترل کرد یا از قبل توسط این افزونه کنترل میشود، فراخوانی set() و تغییر مقدار ویژگی virtualKeyboard بیخطر است. اگر ویژگی قابل کنترل نیست، به کاربر اطلاع دهید که این تنظیم قابل تغییر نیست و در صورت لزوم به او توصیه کنید با مدیر سیستم خود تماس بگیرد.
ویژگیهای موجود که میتوانند با API مربوط به chrome.accessibilityFeatures پیکربندی شوند، در دستههای زیر گروهبندی میشوند: تبدیل متن به گفتار، نمایش و بزرگنمایی، صفحه کلید و ورودی متن، مکاننما و صفحه لمسی.
تبدیل متن به گفتار
ویژگیهای تبدیل متن به گفتار به کاربران این امکان را میدهد که متن روی صفحه نمایش را با استفاده از صفحهخوان داخلی ChromeOS با صدای بلند بخوانند. چه کاربر دچار اختلالات بینایی باشد، چه قادر به خواندن نباشد، یا به هر نحوی ترجیح دهد به جای خواندن متن، به آن گوش دهد، این ویژگیها به این کاربران امکان تعامل با دستگاه را میدهند.
-
selectToSpeak: ویژگی انتخاب برای صحبت را کنترل میکند که به کاربران امکان میدهد متن روی صفحه را برای خواندن با صدای بلند انتخاب کنند. -
spokenFeedback: ویژگی ChromeVox ، یک صفحهخوان که متن روی صفحه را با صدای بلند میخواند، و نام دکمهها، پیوندها و سایر عناصر را کنترل میکند.
نمایش و بزرگنمایی
ویژگیهای نمایش و بزرگنمایی، رنگهای نمایش را تغییر میدهند و گزینههای بزرگنمایی را ارائه میدهند که باعث میشود صفحه نمایش راحتتر خوانده شود و اشیاء راحتتر پیدا شوند.
-
highContrast: ویژگی وارونگی رنگ را کنترل میکند که طرح رنگ را به طرحی با کنتراست افزایشیافته تغییر میدهد. -
screenMagnifier: ویژگی ذرهبین تمام صفحه را کنترل میکند که برای بزرگتر کردن موارد روی صفحه، بزرگنمایی میکند. -
dockedMagnifier: ویژگی بزرگنمایی متصل را کنترل میکند که نواحی فوکوس شده صفحه را در یک نمای تقسیم صفحه بزرگنمایی میکند.
صفحه کلید و ورودی متن
ویژگیهای ورودی متن و صفحهکلید، گزینههای مختلفی را برای تعامل با محتوا و موارد ورودی روی صفحه در اختیار کاربران قرار میدهد.
-
virtualKeyboard: این ویژگی قابلیت صفحهکلید روی صفحه را کنترل میکند که به کاربران امکان میدهد بدون استفاده از صفحهکلید فیزیکی تایپ کنند. -
dictation: این ویژگی قابلیت دیکته را کنترل میکند که به کاربران امکان میدهد با صحبت کردن در میکروفون، متن را تایپ کنند و ورودی را با صدای خود کنترل کنند. -
switchAccess: این ویژگی قابلیت دسترسی به سوئیچ را کنترل میکند که به کاربران اجازه میدهد دستگاه خود را با سوئیچها (کلیدهای صفحهکلید، دکمههای گیمپد و سایر دستگاههای سوئیچ اختصاصی) کنترل کنند. -
stickyKeys: این ویژگی قابلیت کلیدهای چسبنده را کنترل میکند که به کاربران اجازه میدهد به جای نگه داشتن همزمان چندین کلید، هر بار یک کلید را برای میانبرهای صفحه کلید فشار دهند. -
focusHighlight: این ویژگی، ویژگی برجستهسازی با فوکوس صفحهکلید را کنترل میکند که شیء دارای فوکوس صفحهکلید را برجسته میکند. کاربران با استفاده از کلید tab یا انتخاب با مکاننمای ماوس، در میان اشیاء حرکت میکنند. -
caretHighlight: این ویژگی، ویژگی هایلایت مکاننمای متن (caret) را کنترل میکند که هنگام ظاهر شدن یا حرکت مکاننمای متن، یک حلقه فوکوس دور آن نشان میدهد.
مکان نما
ویژگیهای مکاننما، مکاننما را سفارشی میکنند و پیدا کردن آن روی صفحه و استفاده از آن را آسانتر میکنند.
-
autoclick: این ویژگی قابلیت کلیکهای خودکار را کنترل میکند که به مکاننمای ماوس اجازه میدهد تا به طور خودکار در جایی که متوقف میشود کلیک کند. -
largeCursor: این ویژگی، ویژگی بزرگ بودن مکاننما را کنترل میکند که اندازه مکاننمای ماوس را برای دیده شدن بیشتر افزایش میدهد. -
cursorColor: این ویژگی، ویژگی رنگ مکاننما را کنترل میکند. مقدار ویژگیcursorColorفقط نشان میدهد که آیا این ویژگی فعال است یا خیر. این ویژگی رنگ مکاننما را نشان نمیدهد. -
cursorHighlight: این ویژگی، ویژگی هایلایت مکاننما را کنترل میکند که هنگام حرکت، یک حلقه فوکوس دور مکاننمای ماوس نشان میدهد.
دسترسیپذیری کیوسک در سطح سختافزار
همانند سایر برنامهها، دسترسی به یک برنامه کیوسک نیز تحت تأثیر دستگاهی است که روی آن مستقر شده است. توسعهدهندگان باید بیشتر با تیم سختافزار خود همکاری کنند تا اطمینان حاصل شود که برنامه کیوسک آنها در سطح سختافزار قابل دسترسی است.
برنامههای کیوسک را میتوان روی هر سیستم عامل ChromeOS، از نمایشگرهای غیرتعاملی گرفته تا پلتفرمهای تعاملی، نصب کرد. هر زمان که انتظار میرود کاربر با یک برنامه کیوسک تعامل داشته باشد، استانداردهای دسترسی خاصی در سطح سختافزار توصیه میشود:
- اپلیکیشنهای کیوسک باید برای کسانی که ممکن است از ویلچر یا وسایل کمکی حرکتی مشابه استفاده کنند، قابل دسترسی و استفاده باشند.
- سختافزار کیوسک باید شامل گزینهای برای صفحهکلید و ماوس فیزیکی باشد.
- برنامههای کیوسک باید از جک هدفون و میکروفون پشتیبانی کنند.
- سختافزار کیوسک باید صفحه نمایشی با اندازه و وضوح کافی داشته باشد تا متن و تصاویر واضح و قابل مشاهده باشند.
دسترسیپذیری کیوسک به موارد زیادی بستگی دارد: کنترلهای سیاست، APIها و سختافزار. اما در قلب آن، دسترسیپذیری کیوسک، دسترسیپذیری وب است. برای دستیابی به دسترسیپذیری بهتر در برنامه کیوسک خود، توصیهها و بهترین شیوههای فوق را دنبال کنید، آزمایش کامل کاربر را انجام دهید و دستورالعملهای WCAG 2 را مرور کنید.