معايير نجاح WCAG · Level A
WCAG 2.1.4: اختصارات المفاتيح الأحرفية
تتطلب WCAG 2.1.4 أن أي اختصار لوحة مفاتيح يتم تنفيذه باستخدام مفتاح حرف واحد فقط (حرف، رقم، علامة ترقيم، أو رمز) يمكن إيقافه، أو إعادة تعيينه، أو تفعيله فقط عند وجود التركيز عليه — وذلك لمنع التشغيل العرضي الذي يضر بالمستخدمين الذين يعتمدون على الإدخال الصوتي أو لديهم إعاقات حركية.
ماذا يعني هذا المعيار
WCAG 2.1.4 — اختصارات مفاتيح الأحرف هو معيار نجاح من المستوى A تم تقديمه في WCAG 2.1. يعالج خطراً محدداً ولكنه خطير من مخاطر إمكانية الوصول: عندما يعيّن تطبيق ويب اختصارات لوحة مفاتيح تتكون من حرف واحد قابل للطباعة — حرف أو رقم أو علامة ترقيم أو رمز — دون اشتراط مفتاح مُعدِّل مثل Ctrl أو Alt أو Meta أو Shift معه.
ينص المعيار على أنه إذا تم تنفيذ اختصار لوحة مفاتيح في المحتوى باستخدام مفتاح حرف واحد فقط، فيجب أن يتحقق واحد على الأقل مما يلي:
- إيقاف التشغيل: يجب أن تتوفر آلية تتيح للمستخدم إيقاف الاختصار تماماً.
- إعادة التعيين: يجب أن تتوفر آلية تتيح للمستخدم إعادة تعيين الاختصار لاستخدام مفتاح أو أكثر من مفاتيح التعديل غير القابلة للطباعة (مثل Ctrl أو Alt).
- نشط فقط عند التركيز: يكون اختصار لوحة المفاتيح لمكوّن واجهة المستخدم نشطاً فقط عندما يكون هذا المكوّن في حالة تركيز.
اختصار مفتاح حرف واحد هو اختصار يتم تفعيله بالضغط على مفتاح واحد ينتج حرفاً قابلاً للطباعة — على سبيل المثال، الضغط على G لفتح معرض، أو الضغط على / لتركيز شريط البحث، أو الضغط على N لكتابة رسالة جديدة. تختلف هذه بشكل جوهري عن الاختصارات مثل Ctrl+S أو Alt+F4 التي تتطلب مفتاح تعديل غير قابل للطباعة، وبالتالي فهي خارج نطاق هذا المعيار.
يُعتَبَر الاختصار مستوفياً لهذا المعيار إذا كان التطبيق إما: (1) يوفر صفحة إعدادات أو تفضيلات يمكن فيها تعطيل اختصارات المفتاح الواحد أو تغييرها إلى مجموعات متعددة المفاتيح؛ أو (2) يعيد تعيينها تلقائياً إلى اختصارات تعتمد على مفاتيح التعديل؛ أو (3) لا يتم تشغيل الاختصار إلا عندما يكون عنصر التفعيل نفسه في حالة تركيز بلوحة المفاتيح — أي أن الضغط على المفتاح بينما التركيز في مكان آخر لا يفعل شيئاً.
يُعتَبَر الاختصار غير مستوفٍ إذا كان ضغطة مفتاح واحد تطلق إجراءً عاماً في أي وقت بغض النظر عن العنصر الذي عليه التركيز، ولا توجد أي طريقة للمستخدم لإيقافه أو تغييره. مثال شائع في العالم الحقيقي هو تطبيق صفحة واحدة يطلق إجراء تنقل كلما ضغط المستخدم على مفتاح حرف، حتى أثناء ملء حقل نصي أو إملاء نص.
يتضمن المعيار استثناءً رسمياً واحداً مهماً: لا ينطبق عندما يكون الاختصار نشطاً فقط أثناء وجود التركيز على مكوّن محدد. على سبيل المثال، عنصر قائمة منسدلة مخصص يستمع لمفاتيح الأحرف فقط عندما تكون القائمة المنسدلة نفسها مفتوحة وفي حالة تركيز يُعتَبَر مقبولاً، لأن احتواء التركيز يحد من خطر التفعيل العرضي.
لماذا يهم
يوجد هذا المعيار أساساً لحماية مجموعتين من المستخدمين، رغم أن فوائده تمتد إلى أبعد من ذلك.
مستخدمو الإدخال الصوتي هم الأكثر تأثراً بشكل مباشر. الأشخاص ذوو الإعاقات الحركية غالباً ما يتحكمون في حواسيبهم بالكامل من خلال برامج التعرف على الصوت مثل Dragon NaturallySpeaking (الآن Dragon Professional). عند إملاء النص أو إصدار أوامر صوتية، تصدر هذه الأدوات ضغطات مفاتيح يمكن أن تُفعِّل عن غير قصد اختصارات أحرف مفردة على صفحة الويب النشطة. تخيل مستخدماً يملي نموذجاً طبياً ويقول "next" — إذا كان التطبيق يستمع للحرف N بشكل عام، فقد ينتقل بعيداً عن النموذج، مما يدمر عمل المستخدم. وفقاً لمراكز مكافحة الأمراض والوقاية منها (CDC)، يعيش حوالي 61 مليون بالغ في الولايات المتحدة مع إعاقة، ويعتمد جزء كبير منهم على طرق إدخال بديلة بما في ذلك التعرف على الكلام.
المستخدمون ذوو الإعاقات الحركية الذين يستخدمون الوصول بالمفاتيح التبادلية (switch access) أو أجهزة النفخ والشفط (sip-and-puff) أو التنقل بلوحة المفاتيح فقط معرضون أيضاً للخطر. قد يضغط هؤلاء المستخدمون على مفاتيح عن غير قصد أو يمرون عبر عدة مفاتيح أثناء محاولة الوصول إلى هدف معين. ضغطة واحدة خاطئة تُفعِّل إجراءً لا رجعة فيه — مثل أرشفة بريد إلكتروني أو حذف ملف أو إرسال نموذج — يمكن أن تسبب إحباطاً كبيراً وفقداناً للبيانات.
المستخدمون ذوو الإعاقات الإدراكية قد يتضررون أيضاً. المستخدمون الذين لديهم اضطرابات في الانتباه أو المستخدمون غير المألوفين بواجهة ما قد يضغطون على مفاتيح بشكل تجريبي لاستكشاف الصفحة، دون علمهم بأن اختصارات الأحرف المفردة نشطة. تؤدي التنقلات أو تغييرات الحالة غير المتوقعة إلى زيادة العبء الإدراكي والتشوش.
فكّر في هذا السيناريو الواقعي: منصة تجارة إلكترونية تركية تطبق اختصارات مفتاح واحد للمستخدمين المتقدمين — الضغط على C للذهاب إلى سلة التسوق، والضغط على F للذهاب إلى المفضلة. يحاول مستخدم إدخال صوتي إملاء عنوان الشحن في حقل نموذج. عندما يقول "Caddesi" (الكلمة التركية لـ "الشارع")، يصدر برنامج التعرف على الكلام الحرف C قبل أن يدخل التركيز بالكامل إلى حقل الإدخال، مما يؤدي إلى الانتقال إلى صفحة السلة. يضيع العنوان المُدخَل جزئياً. يجب على المستخدم البدء من جديد، وإذا تكرر هذا التجربة، فقد يهجر الموقع تماماً.
إضافة إلى إمكانية الوصول، فإن معالجة هذا المعيار تحسن قابلية الاستخدام بشكل عام. توفير واجهة تخصيص للاختصارات يشير إلى منتج ناضج يحترم المستخدم. كما يمكن أن يقلل من تذاكر الدعم من المستخدمين المحبطين الذين يُفعِّلون الاختصارات عن طريق الخطأ.
قواعد Axe-core ذات الصلة
يتطلب WCAG 2.1.4 اختباراً يدوياً لأن الأدوات الآلية لا يمكنها اكتشاف جميع اختصارات لوحة المفاتيح ذات الحرف الواحد بشكل موثوق أو التحقق مما إذا كانت آلية إعادة التعيين/التعطيل موجودة. إليك سبب قصور الأتمتة وما الذي يجب على المختبرين البحث عنه يدوياً:
- لا توجد قاعدة مخصصة في axe-core (يتطلب فحصاً يدوياً): لا يحتوي axe-core و Lighthouse على قاعدة آلية تُعلِم بشكل محدد عن اختصارات لوحة المفاتيح ذات الحرف الواحد. السبب معماري: يتم تنفيذ سلوك اختصار لوحة المفاتيح في مستمعي أحداث JavaScript (
keydownوkeyupوkeypress)، ولا يمكن لتحليل DOM الساكن تحديد الإجراء الذي ستُطلِقه ضغطة مفتاح معينة، أو ما إذا كان هذا الإجراء عاماً أو مقيداً بالتركيز، أو ما إذا كانت هناك آلية مرئية للمستخدم للتعطيل/إعادة التعيين. سيتعين على أداة ما محاكاة ضغطات المفاتيح عبر جميع مدخلات الأحرف الممكنة وملاحظة تغييرات حالة التطبيق الناتجة — وهي مهمة ذات تعقيد توافقي وتعتمد على السياق وتتجاوز قدرات الاختبار الآلي الحالية. - فحص مستمعي الأحداث (أتمتة جزئية): يمكن لأدوات تطوير المتصفح (Browser DevTools) تعداد مستمعي الأحداث المرفقين بعناصر
documentأوwindowأوbody. إذا أرفق موقع ما مستمعkeydownبـdocumentوكشف فحص مصدره عن منطق مطابقة أحرف مفردة، فهذا مؤشر قوي يتطلب تحققاً يدوياً. ومع ذلك، لا يمكن للأداة أن تحدد بمفردها ما إذا كان السلوك الناتج يشكل اختصاراً أو ما إذا كانت آلية التعطيل موجودة. - مكتبات اختصارات خاصة بالأطر: تستخدم العديد من تطبيقات React أو Vue أو Angular مكتبات مثل
react-hotkeys-hookأوtinykeysأوMousetrapالتي تسجل اختصارات عامة. يجب أن يتحقق التدقيق اليدوي من وجود هذه التبعيات في مصدر الصفحة أو في تبويب الشبكة (network)، ثم اختبار كل اختصار مسجل مقابل متطلبات هذا المعيار.
كيفية الاختبار
- مراجعة التطبيق بحثاً عن اختصارات أحرف مفردة معروفة: اقرأ أي وثائق متاحة أو صفحات مساعدة أو مربعات حوار مرجعية لاختصارات لوحة المفاتيح (غالباً ما تُفتح باستخدام ؟ أو من خلال قائمة المساعدة). قم بإدراج جميع الاختصارات الموثقة التي تستخدم حرفاً واحداً دون مفتاح تعديل.
- فحص مستمعي أحداث JavaScript: افتح Chrome DevTools أو Firefox DevTools، وانتقل إلى لوحة Elements أو Sources، واستخدم تبويب Event Listeners لفحص المستمعين على
documentوwindowوbody. ابحث عن معالجاتkeydownأوkeyupأوkeypress. قم بتوسيع وقراءة مصدر المعالج لمعرفة ما إذا كانت مفاتيح أحرف مفردة تُختبَر دون فحص مفاتيح التعديل (أي أن الشيفرة تتحقق منevent.key === 'n'دون التحقق أيضاً منevent.ctrlKey || event.metaKey || event.altKey). - اختبار اختصارات لوحة المفاتيح بينما التركيز في حقل إدخال نص: انقر داخل حقل نص أو مربع بحث أو textarea. ثم اضغط على كل اختصار حرف واحد حددته. إذا تم تشغيل الاختصار (حدث تنقل، أو تم تفعيل إجراء، أو تغيرت حالة)، فهذا فشل — الاختصار غير مقيد بالتركيز ونشط حتى عندما يكون المستخدم يكتب.
- الاختبار باستخدام NVDA + Firefox: فعّل وضع التصفح في NVDA (Insert+Space للتبديل). في وضع التصفح، يستخدم NVDA مفاتيح تنقل بحرف واحد (H للعناوين، B للأزرار، إلخ). شغّل تطبيق الويب قيد الاختبار. انتقل إلى وضع التركيز (Insert+Space) واملِ أو اكتب نصاً. تحقق من أن اختصارات الأحرف المفردة في الصفحة لا تتعارض مع ضغطات مفاتيح وضع التصفح في NVDA وأنه لا يتم تشغيل أي إجراءات غير مقصودة.
- الاختبار باستخدام JAWS + Chrome: بالمثل، يستخدم JAWS تنقلاً سريعاً بحرف واحد. شغّل التطبيق، وتنقل عبر مؤشر JAWS الافتراضي، وتحقق من أن اختصارات التطبيق لا تُفعَّل بشكل غير متوقع بينما يعالج JAWS ضغطات المفاتيح.
- الاختبار باستخدام VoiceOver + Safari (macOS): فعّل VoiceOver (Cmd+F5). استخدم VO+Shift+Down للتفاعل مع مناطق المحتوى. تحقق من أن اختصارات مفاتيح الأحرف في الصفحة لا تتداخل مع أوامر التنقل في VoiceOver.
- محاكاة الإدخال الصوتي: إذا كان Dragon NaturallySpeaking أو Windows Speech Recognition متاحاً، فاملِ نصاً في حقل نموذج بينما التطبيق مفتوح. انطق كلمات وعبارات شائعة تبدأ بأحرف تُستخدم كاختصارات. تحقق من عدم تشغيل أي إجراءات غير مقصودة.
- التحقق من آلية التعطيل أو إعادة التعيين: إذا كانت اختصارات أحرف مفردة موجودة، فابحث عن واجهة الإعدادات أو التفضيلات التي تسمح بإيقافها أو إعادة تعيينها. تأكد من إمكانية الوصول إليها باستخدام لوحة المفاتيح فقط وأنها تعمل بشكل صحيح. اختبر أنه بعد تعطيل اختصار ما، لم يعد الضغط على الحرف يُفعِّل الإجراء.
كيفية الإصلاح
اختصار حرف واحد عام بدون فحص مفتاح تعديل — غير صحيح
<!-- JavaScript attached to document fires on any 'n' keypress globally -->
<script>
document.addEventListener('keydown', function(event) {
if (event.key === 'n') {
// Navigate to compose new message
openComposeWindow();
}
});
</script>
اختصار حرف واحد عام — صحيح: إضافة شرط مفتاح تعديل وزر تعطيل
<!-- Correct approach 1: Require a modifier key (Ctrl+N) to prevent accidental firing -->
<script>
document.addEventListener('keydown', function(event) {
// Only fire when Ctrl or Meta (Cmd on Mac) is also held
if ((event.ctrlKey || event.metaKey) && event.key === 'n') {
openComposeWindow();
}
});
</script>
<!-- Correct approach 2: If single-char shortcut is required, provide a disable toggle -->
<button type='button' id='toggle-shortcuts' aria-pressed='true'>
Keyboard shortcuts enabled
</button>
<script>
let shortcutsEnabled = true;
document.getElementById('toggle-shortcuts').addEventListener('click', function() {
shortcutsEnabled = !shortcutsEnabled;
this.setAttribute('aria-pressed', shortcutsEnabled.toString());
this.textContent = shortcutsEnabled ? 'Keyboard shortcuts enabled' : 'Keyboard shortcuts disabled';
});
document.addEventListener('keydown', function(event) {
if (!shortcutsEnabled) return; // Respect user preference
if (event.key === 'n') {
openComposeWindow();
}
});
</script>
اختصار نشط داخل ودجت في حالة تركيز — غير صحيح
<!-- Shortcut listens on the entire document, not scoped to the widget -->
<div id='autocomplete-list' role='listbox'>
<div role='option'>Istanbul</div>
<div role='option'>Ankara</div>
</div>
<script>
// BUG: attached to document, fires even when autocomplete is not focused
document.addEventListener('keydown', function(e) {
if (e.key === 'Enter') selectHighlightedOption();
});
</script>
اختصار نشط داخل ودجت في حالة تركيز — صحيح: حصر المستمع في الودجت
<!-- Correct: listener is on the widget element; shortcut only fires when it has focus -->
<div id='autocomplete-list' role='listbox' tabindex='0'>
<div role='option'>Istanbul</div>
<div role='option'>Ankara</div>
</div>
<script>
var widget = document.getElementById('autocomplete-list');
// Listener on the widget itself: Enter only fires when the listbox is focused
widget.addEventListener('keydown', function(e) {
if (e.key === 'Enter') selectHighlightedOption();
});
</script>
عدم وجود واجهة مستخدم لإعادة التعيين — غير صحيح
<!-- Application registers shortcuts with a library but offers no settings page -->
<!-- User has no way to change or disable 'g' (go to gallery) or 'c' (go to cart) -->
<script src='hotkeys.min.js'></script>
<script>
hotkeys('g', function() { goToGallery(); });
hotkeys('c', function() { goToCart(); });
</script>
عدم وجود واجهة مستخدم لإعادة التعيين — صحيح: إضافة لوحة إعدادات قابلة للوصول
<!-- Settings panel accessible via keyboard; lets user toggle all single-char shortcuts -->
<nav aria-label='Accessibility settings'>
<button type='button' id='open-shortcut-settings'>Keyboard shortcut settings</button>
</nav>
<dialog id='shortcut-settings-dialog' aria-labelledby='dialog-title'>
<h2 id='dialog-title'>Keyboard Shortcuts</h2>
<label>
<input type='checkbox' id='enable-single-char' checked />
Enable single-character keyboard shortcuts (G, C, N...)
</label>
<p>Disable this if you use speech recognition software or experience accidental activations.</p>
<button type='button' id='close-dialog'>Save and close</button>
</dialog>
<script src='hotkeys.min.js'></script>
<script>
var checkbox = document.getElementById('enable-single-char');
function applyShortcuts() {
if (checkbox.checked) {
hotkeys('g', function() { goToGallery(); });
hotkeys('c', function() { goToCart(); });
} else {
hotkeys.unbind('g');
hotkeys.unbind('c');
}
}
applyShortcuts();
checkbox.addEventListener('change', applyShortcuts);
document.getElementById('open-shortcut-settings').addEventListener('click', function() {
document.getElementById('shortcut-settings-dialog').showModal();
});
document.getElementById('close-dialog').addEventListener('click', function() {
document.getElementById('shortcut-settings-dialog').close();
});
</script>
الأخطاء الشائعة
- تسجيل اختصارات على
documentأوwindowدون التحقق مما إذا كان عنصر إدخال في حالة تركيز حالياً: حتى إذا كانت آلية التعطيل موجودة، تنسى العديد من التطبيقات التحقق منdocument.activeElementوقمع الاختصار عندما يكون المستخدم داخل عنصر<input>أو<textarea>أوcontenteditable، مما يؤدي إلى التدخل في الكتابة العادية. - اعتبار اختصار
؟(فتح المساعدة) مستثنى: علامة الاستفهام حرف قابل للطباعة واختصار حرف واحد. لا يُستثنى من هذا المعيار ما لم يكن مقيداً بالتركيز أو توجد آلية تعطيل/إعادة تعيين. - تعطيل الاختصارات فقط في حقول النص وليس في مناطق
contenteditableأو محررات النصوص الغنية: غالباً ما يُملِي مستخدمو الإدخال الصوتي في عناصرcontenteditableالتي تستخدمها محررات النصوص الغنية (مثل تلك الموجودة في منصات إدارة المحتوى CMS). الفشل في قمع الاختصارات العامة في هذه السياقات لا يزال ينتهك المعيار. - تخزين تفضيل المستخدم للاختصارات في ذاكرة الجلسة فقط: إذا عطّل المستخدم الاختصارات ثم حدّث الصفحة، فيجب الاحتفاظ بالتفضيل (في
localStorageأو إعداد ملف تعريف المستخدم) حتى لا يضطر إلى تعطيل الاختصارات في كل زيارة. - جعل واجهة إعدادات الاختصارات نفسها غير قابلة للوصول: وضع خيار التعطيل/إعادة التعيين عميقاً في قائمة لا يمكن الوصول إليها بلوحة المفاتيح، أو استخدام عنصر تبديل مخصص دون
role='switch'وaria-checkedمناسبين، يعني أن آلية الإصلاح غير قابلة للاستخدام من قبل المستخدمين الذين صُممت لمساعدتهم. - افتراض أن مفاتيح الحروف فقط هي المهمة: مفاتيح الأرقام (1–9) ومفاتيح علامات الترقيم (/, .، الفاصلة، الفاصلة المنقوطة) ومفاتيح الرموز (#، @، !) كلها أحرف قابلة للطباعة. اختصارات المفتاح الواحد التي تستخدم هذه الأحرف تخضع بنفس القدر لهذا المعيار.
- الفشل في توثيق الاختصارات الموجودة: حتى إذا كانت آلية التعطيل موجودة، لا يمكن للمستخدمين استخدامها بفعالية إذا لم يعرفوا أي اختصارات نشطة. يُوصى بشدة بتوفير مرجع اختصارات مرئي وقابل للوصول بلوحة المفاتيح (مثل مربع حوار يُفتح عبر زر مساعدة).
- استخدام الإعداد الافتراضي لمكتبة اختصارات تربط بشكل عام دون قراءة وثائقها: تربط مكتبات مثل Mousetrap و Hotkeys.js و tinykeys بالنطاق العام بشكل افتراضي. غالباً ما يستخدمها المطورون دون قراءة الوثائق المتعلقة بتقييد النطاق أو متطلبات مفاتيح التعديل، مما يؤدي عن غير قصد إلى انتهاكات واسعة النطاق للمعيار.
- عدم الاختبار باستخدام التعرف على الكلام قبل الإطلاق: الفرق التي لا تمتلك Dragon NaturallySpeaking في أدوات ضمان الجودة لديها غالباً ما تكتشف تعارضات اختصارات الأحرف المفردة فقط بعد النشر، عندما يبلغ مستخدمو الإدخال الصوتي عن المشكلات.
- الاعتقاد بأن الاختصار "اختياري" أو "للمستخدمين المتقدمين" وبالتالي مستثنى: ينطبق المعيار على جميع اختصارات الأحرف المفردة بغض النظر عما إذا كانت تُسوَّق كميزات متقدمة. كون الميزة اختيارية لا يعفيها من متطلبات الامتثال.
العلاقة مع لوائح إمكانية الوصول في تركيا
تُقرِّر التعميم الرئاسي 2025/10 في تركيا، المنشور في الجريدة الرسمية رقم 32933 بتاريخ 21 يونيو 2025، متطلبات إلزامية لإمكانية الوصول على الويب والهواتف المحمولة متوافقة مع WCAG 2.2. يُعتَبَر WCAG 2.1.4 — اختصارات مفاتيح الأحرف معيار نجاح من المستوى A، مما يضعه في أعلى فئة من الأولويات بموجب التعميم.
يغطي التعميم مجموعة واسعة من الكيانات العاملة في تركيا. يجب على المؤسسات العامة — بما في ذلك الوزارات والبلديات والجامعات الحكومية والمستشفيات العامة والهيئات الحكومية — تحقيق امتثال كامل للمستوى A خلال عام واحد من تاريخ نشر التعميم. تُمنَح الكيانات الخاصة في الفئات المشمولة فترة امتثال مدتها عامان. تشمل الكيانات الخاصة المشمولة منصات التجارة الإلكترونية والبنوك والمؤسسات المالية والمستشفيات ومقدمي الرعاية الصحية وشركات الاتصالات التي لديها 200,000 مشترك أو أكثر ووكالات السفر وشركات النقل الخاصة والمدارس الخاصة التي تعمل بتصريح من وزارة التربية الوطنية (MoNE).
بالنسبة لهذه المنظمات، فإن عدم الامتثال لـ WCAG 2.1.4 ليس مجرد مسألة أفضل الممارسات — بل هو التزام قانوني. موقع تجارة إلكترونية تركي يطبق اختصارات تصفح المنتجات بأحرف مفردة دون آلية تعطيل، أو بوابة إلكترونية لبنك تركي تستخدم اختصارات مفاتيح الحروف في تدفق المعاملات، سيكونان في انتهاك مباشر لمتطلبات التعميم.
عملياً، يجب على فرق الامتثال في الكيانات المشمولة تدقيق قواعد شيفرة JavaScript الخاصة بهم وأي مكتبات ودجات (widgets) تابعة لجهات خارجية بحثاً عن اختصارات أحرف مفردة مسجلة بشكل عام كمهام منفصلة خلال مشاريع معالجة مستوى A لـ WCAG 2.2. نظراً لأن هذا المعيار يتطلب اختباراً يدوياً، فلن تكشف عمليات الفحص الآلي لإمكانية الوصول عن الانتهاكات وحدها — بل يلزم تمرير مخصص لاختبار لوحة المفاتيح والإدخال الصوتي. يجب على المنظمات التي تستخدم أنظمة إدارة محتوى أو أطر عمل للواجهات الأمامية مراجعة تطبيقات الاختصارات على مستوى المنصة (على سبيل المثال، اختصارات لوحة مفاتيح افتراضية في واجهة إدارة CMS تظهر في الصفحات الموجهة للعملاء) بالإضافة إلى شيفرة التطبيق المخصصة.
يساعد SDK التراكب الخاص بـ Accsible الكيانات المشمولة من خلال توفير لوحة تفضيلات إمكانية وصول يمكن للمستخدم الوصول إليها، والتي يمكنها إظهار مفتاح تبديل لتعطيل الاختصارات للمستخدمين النهائيين، مما يساعد المنظمات على تلبية متطلب "آلية الإيقاف" في WCAG 2.1.4 دون الحاجة إلى إعادة هيكلة كاملة لقاعدة الشيفرة. يعد هذا ذا قيمة خاصة للمنظمات التي تدير تطبيقات قديمة حيث يكون تعديل منطق اختصارات JavaScript الأساسي كثيف الموارد. ومع ذلك، يجب على المنظمات أن تلاحظ أن الاعتماد فقط على تراكب من أجل الامتثال لا يُعتَبَر بديلاً عن معالجة تطبيقات الاختصارات الأساسية، وأن نهجاً متعدد الطبقات يجمع بين أدوات التراكب ومعالجة الشيفرة المصدرية يوفر المسار الأكثر قوة للامتثال بموجب التعميم الرئاسي.
المصادر والمراجع
- W3C Understanding 2.1.4 Character Key Shortcuts
- W3C Techniques for 2.1.4
- WebAIM: Keyboard Accessibility
- Deque University: WCAG 2.1.4 Character Key Shortcuts
- MDN: KeyboardEvent.key
- MDN: EventTarget.addEventListener
- W3C Technique G217: Providing a mechanism to allow users to remap or turn off character key shortcuts
