UNPKG

fast_htmlcs

Version:

A high performance rewrite of HTML_CodeSniffer.

1 lines 143 kB
!function(e,t){if("function"==typeof define&&define.amd)define("htmlcs",t);else if("object"==typeof i)module.exports=t();else{var i=t();for(var n in i)e[n]=i[n]}}(this,function(){var e={translation:{}};return e.translation.ar={auditor_success_criterion:"معيار النجاح",auditor_suggested_techniques:"التقنيات المقترحة","1_1_1_H30.2":"عنصر Img هو المحتوى الوحيد للرابط، لكنه يفتقد إلى نص بديل. يجب أن يصف النص البديل غرض الرابط.","1_1_1_H67.1":"يجب أن يكون عنصر Img ذو نص alt فارغ مزودًا بسمة title غائبة أو فارغة.","1_1_1_H67.2":"تم تمييز عنصر Img بحيث يتم تجاهله بواسطة تقنيات المساعدة.","1_1_1_H37":"عنصر Img يفتقد إلى سمة alt. استخدم سمة alt لتحديد بديل نصي قصير.","1_1_1_G94.Image":"تأكد من أن النص البديل لعنصر img يحقق نفس الغرض ويعرض نفس المعلومات كالصورة.","1_1_1_H36":"زر إرسال الصورة يفتقد إلى سمة alt. حدد بديلاً نصيًا يصف وظيفة الزر باستخدام سمة alt.","1_1_1_G94.Button":"تأكد من أن النص البديل لزر إرسال الصورة يحدد غرض الزر.","1_1_1_H24":"عنصر Area في خريطة صورة يفتقد إلى سمة alt. يجب أن يكون لكل عنصر area بديل نصي يصف وظيفة منطقة خريطة الصورة.","1_1_1_H24.2":"تأكد من أن البديل النصي لعنصر المنطقة يحقق نفس الغرض كجزء من صورة خريطة الصورة التي يشير إليها.","1_1_1_G73,G74":"إذا لم يتم وصف هذه الصورة بالكامل في بديل نصي قصير، تأكد من توفر بديل نصي طويل أيضًا، مثل في نص الجسم أو من خلال رابط.","1_1_1_H2.EG5":"يجب ألا يستخدم عنصر Img داخل رابط نص alt يكرر محتوى نص الرابط.","1_1_1_H2.EG4":"عنصر Img داخل رابط له نص alt فارغ أو مفقود عندما يحتوي رابط بجانبه على نص رابط. ضع في اعتبارك دمج الروابط.","1_1_1_H2.EG3":"يجب ألا يستخدم عنصر Img داخل رابط النص alt الذي يكرر محتوى رابط النص بجانبه.","1_1_1_H53,ARIA6":"يجب أن تحتوي عناصر الكائن على بديل نصي بعد استنفاد جميع البدائل الأخرى.","1_1_1_G94,G92.Object,ARIA6":"تحقق من توفر بدائل نصية قصيرة (وإذا كان مناسبًا، طويلة) للمحتوى غير النصي التي تحقق نفس الغرض وتعرض نفس المعلومات.","1_1_1_H35.3":"يجب أن تحتوي عناصر Applet على بديل نصي في جسم العنصر، للمتصفحات التي لا تدعم عنصر applet.","1_1_1_H35.2":"يجب أن تحتوي عناصر Applet على سمة alt، لتوفير بديل نصي للمتصفحات التي تدعم العنصر ولكن لا يمكنها تحميل التطبيق.","1_1_1_G94,G92.Applet":"تحقق من توفر بدائل نصية قصيرة (وإذا كان مناسبًا، طويلة) للمحتوى غير النصي التي تحقق نفس الغرض وتعرض نفس المعلومات.","1_2_1_G158":"إذا كان هذا الجسم المضمن يحتوي على صوت مسبق التسجيل فقط، ولم يتم توفيره كبديل للمحتوى النصي، تحقق من توفر نسخة نصية بديلة.","1_2_1_G159,G166":"إذا كان هذا الجسم المضمن يحتوي على فيديو مسبق التسجيل فقط، ولم يتم توفيره كبديل للمحتوى النصي، تحقق من توفر نسخة نصية بديلة، أو تتوفر مسار صوتي يعرض معلومات مكافئة.","1_2_2_G87,G93":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة مسجلة مسبقًا ولم يتم توفيره كبديل للمحتوى النصي، تحقق من توفير ترجمات للمحتوى الصوتي.","1_2_3_G69,G78,G173,G8":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة مسجلة مسبقًا ولم يتم توفيره كبديل للمحتوى النصي، تحقق من توفير وصف صوتي لفيديوهاته، و/أو نسخة نصية بديلة للمحتوى.","1_2_4_G9,G87,G93":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة، تحقق من توفير ترجمات للمحتوى الصوتي المباشر.","1_2_5_G78,G173,G8":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة مسجلة مسبقًا، تحقق من توفير وصف صوتي لمحتوى الفيديو الخاص به.","1_2_6_G54,G81":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة مسجلة مسبقًا، تحقق من توفير تفسير بلغة الإشارة لمحتواه الصوتي.","1_2_7_G8":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة، والتوقفات في الصوت الأمامي لا تكفي للسماح بوصفات صوتية لنقل معنى الفيديو المسجل مسبقًا، تحقق من توفر وصف صوتي ممتد، إما من خلال البرمجة أو نسخة بديلة.","1_2_8_G69,G159":"إذا كان هذا الجسم المضمن يحتوي على وسائط متزامنة مسجلة مسبقًا أو محتوى فيديو فقط، تحقق من توفر نسخة نصية بديلة للمحتوى.","1_2_9_G150,G151,G157":"إذا كان هذا الجسم المضمن يحتوي على محتوى صوتي مباشر فقط، تحقق من توفر نسخة نصية بديلة للمحتوى.","1_3_1_F92,ARIA4":'دور هذا العنصر هو "presentation" لكنه يحتوي على عناصر فرعية ذات معنى دلالي.',"1_3_1_H44.NonExistent":'سمة "for" لهذه العلامة تحتوي على معرف غير موجود في الوثيقة.',"1_3_1_H44.NonExistentFragment":'سمة "for" لهذه العلامة تحتوي على معرف غير موجود في جزء الوثيقة.',"1_3_1_H44.NotFormControl":'سمة "for" لهذه العلامة تحتوي على معرف لعنصر ليس عنصر تحكم في النموذج. تأكد من أنك أدخلت المعرف الصحيح للعنصر المقصود.',"1_3_1_H65":'هذا عنصر التحكم في النموذج يحتوي على سمة "title" فارغة أو تحتوي على مسافات فقط. سيتم تجاهلها لأغراض اختبار التسمية.',"1_3_1_ARIA6":'هذا عنصر التحكم في النموذج يحتوي على سمة "aria-label" فارغة أو تحتوي على مسافات فقط. سيتم تجاهلها لأغراض اختبار التسمية.',"1_3_1_ARIA16,ARIA9":'هذا عنصر التحكم في النموذج يحتوي على سمة aria-labelledby، ومع ذلك فإنه يتضمن معرف "{{id}}" الذي لا يوجد في عنصر. ستتم تجاهل سمة aria-labelledby لأغراض اختبار التسمية.',"1_3_1_F68.Hidden":"هذا الحقل النموذجي المخفي مسمى بطريقة ما. يجب ألا تكون هناك حاجة لتسمية حقل نموذجي مخفي.","1_3_1_F68.HiddenAttr":'يُفترض أن هذا الحقل النموذجي مخفي (باستخدام سمة "hidden")، لكنه مسمى أيضًا بطريقة ما. يجب ألا تكون هناك حاجة لتسمية حقل نموذجي مخفي.',"1_3_1_F68":'يجب تسمية هذا الحقل النموذجي بطريقة ما. استخدم عنصر العلامة (إما بسمة "for" أو ملفوفًا حول حقل النموذج)، أو سمات "title"، "aria-label" أو "aria-labelledby" حسب الاقتضاء.',"1_3_1_H49.":"العلامات العرضية المستخدمة التي أصبحت قديمة في HTML5.","1_3_1_H49.AlignAttr":"سمات التوافق.","1_3_1_H49.Semantic":"يجب استخدام العلامات الدلالية لتمييز النص المؤكد أو النص الخاص بحيث يمكن تحديده برمجيًا.","1_3_1_H49.AlignAttr.Semantic":"يجب استخدام العلامات الدلالية لتمييز النص المؤكد أو النص الخاص بحيث يمكن تحديده برمجيًا.","1_3_1_H42":"يجب استخدام علامات العنوان إذا كان هذا المحتوى مقصودًا كعنوان.","1_3_1_H63.3":"خلية الجدول لها سمة نطاق غير صالحة. القيم الصالحة هي الصف، العمود، مجموعة الصفوف، أو مجموعة الأعمدة.","1_3_1_H63.2":"سمات النطاق على عناصر td التي تعمل كعناوين لعناصر أخرى قديمة في HTML5. استخدم عنصر th بدلاً من ذلك.","1_3_1_H43.ScopeAmbiguous":"سمات النطاق على عناصر th غامضة في جدول به عدة مستويات من العناوين. استخدم سمة العناوين على عناصر td بدلاً من ذلك.","1_3_1_H43.IncorrectAttr":'سمة العناوين غير صحيحة على عنصر td هذا. المتوقع "{{expected}}" ولكن وُجد "{{actual}}"',"1_3_1_H43.IncorrectAttrNotice":"تحقق من صحة سمات العناوين على عناصر td.","1_3_1_H43.HeadersRequired":"العلاقة بين عناصر td وعناصر th المرتبطة بها غير محددة. نظرًا لأن هذا الجدول يحتوي على عدة مستويات من عناصر th، يجب استخدام سمة العناوين على عناصر td.","1_3_1_H43.MissingHeaderIds":"ليس كل عناصر th في هذا الجدول تحتوي على سمة id. يجب أن تحتوي هذه الخلايا على معرفات حتى يمكن الإشارة إليها بواسطة سمات العناوين في عناصر td.","1_3_1_H43.MissingHeadersAttrs":"ليس كل عناصر td في هذا الجدول تحتوي على سمة عناوين. يجب أن تحتوي كل سمة عناوين على قائمة بمعرفات كل عناصر th المرتبطة بهذه الخلية.","1_3_1_H43,H63":"العلاقة بين عناصر td وعناصر th المرتبطة بها غير محددة. استخدم إما سمة النطاق على عناصر th، أو سمة العناوين على عناصر td.","1_3_1_H63.1":"ليس كل عناصر th في هذا الجدول تحتوي على سمة نطاق. يجب أن تحتوي هذه الخلايا على سمة نطاق لتحديد علاقتها بعناصر td.","1_3_1_H73.3.LayoutTable":"يبدو أن هذا الجدول يستخدم للتخطيط، لكنه يحتوي على سمة ملخص. يجب ألا تحتوي جداول التخطيط على سمات ملخص، أو إذا تم توفيرها، يجب أن تكون فارغة.","1_3_1_H39,H73.4":"إذا كان هذا الجدول جدول بيانات، وكل من سمة الملخص وعنصر العنوان موجودين، يجب ألا تكرر السمة الملخص العنوان.","1_3_1_H73.3.Check":"إذا كان هذا الجدول جدول بيانات، تحقق من أن سمة الملخص تصف تنظيم الجدول أو تشرح كيفية استخدام الجدول.","1_3_1_H73.3.NoSummary":"إذا كان هذا الجدول جدول بيانات، فكر في استخدام سمة الملخص للعنصر الجدولي لتقديم لمحة عامة عن هذا الجدول.","1_3_1_H39.3.LayoutTable":"يبدو أن هذا الجدول يستخدم للتخطيط، لكنه يحتوي على عنصر عنوان. يجب ألا تحتوي جداول التخطيط على عناوين.","1_3_1_H39.3.Check":"إذا كان هذا الجدول جدول بيانات، تحقق من أن عنصر العنوان يصف هذا الجدول بدقة.","1_3_1_H39.3.NoCaption":"إذا كان هذا الجدول جدول بيانات، فكر في استخدام عنصر عنوان لعنصر الجدول لتحديد هذا الجدول.","1_3_1_H71.NoLegend":"Fieldset لا يحتوي على عنصر legend. يجب أن تحتوي جميع الحقول على عنصر أسطورة يصف وصف مجموعة الحقل.","1_3_1_H85.2":"إذا كانت قائمة التحديد هذه تحتوي على مجموعات من الخيارات ذات الصلة، فيجب تجميعها باستخدام optgroup.","1_3_1_H71.SameName":"إذا كانت زر الراديو هذه أو خانات الاختيار تتطلب وصفًا إضافيًا على مستوى المجموعة، فيجب أن تكون موجودة داخل عنصر fieldset.","1_3_1_H48.1":"يبدو أن هذا المحتوى يحاكي قائمة غير مرتبة باستخدام النص العادي. إذا كان الأمر كذلك، فإن وضع العلامة على هذا المحتوى بعنصر ul سيضيف معلومات هيكلية مناسبة للوثيقة.","1_3_1_H48.2":"يبدو أن هذا المحتوى يحاكي قائمة مرتبة باستخدام النص العادي. إذا كان الأمر كذلك، فإن وضع العلامة على هذا المحتوى بعنصر ol سيضيف معلومات هيكلية مناسبة للوثيقة.","1_3_1_G141_a":"هيكل العنوان غير متداخل بشكل منطقي. يبدو أن هذا العنصر h{{headingNum}} هو العنوان الرئيسي للوثيقة، لذا يجب أن يكون عنصر h1.","1_3_1_G141_b":"هيكل العنوان غير متداخل بشكل منطقي. يجب أن يكون هذا العنصر h{{headingNum}} عنصر h{{properHeadingNum}} ليكون متداخلًا بشكل صحيح.","1_3_1_H42.2":"تم العثور على علامة عنوان بدون محتوى. النص الذي لا يُقصد كعنوان يجب ألا يتم وضع علامة عليه بعلامات العنوان.","1_3_1_H48":"إذا كان هذا العنصر يحتوي على قسم تنقل، يُوصى بأن يتم وضع علامة عليه كقائمة.","1_3_1_LayoutTable":"يبدو أن هذا الجدول جدول تخطيط. إذا كان يُقصد به أن يكون جدول بيانات بدلاً من ذلك، تأكد من التعرف على خلايا العنوان باستخدام عناصر th.","1_3_1_DataTable":"يبدو أن هذا الجدول جدول بيانات. إذا كان يُقصد به أن يكون جدول تخطيط بدلاً من ذلك، تأكد من عدم وجود عناصر th، ولا ملخص أو عنوان.","1_3_2_G57":"تحقق من أن المحتوى مرتب بتسلسل ذي معنى عند تحويله إلى شكل خطي، مثل عند تعطيل أوراق الأنماط.","1_3_3_G96":"عند تقديم التعليمات لفهم المحتوى، لا تعتمد فقط على الخصائص الحسية (مثل الشكل، الحجم أو الموقع) لوصف الأشياء.","1_3_4.RestrictView":"تحقق من أن المحتوى لا يحد من عرضه وتشغيله إلى اتجاه عرض واحد، مثل العمودي أو الأفقي، ما لم يكن اتجاه العرض المحدد ضروريًا.","1_3_5_H98.FaultyValue":"يحتوي هذا العنصر على قيمة محتملة الخطأ في سمة التكميل التلقائي: {{valuesStr}}.","1_3_5_H98.InvalidAutoComplete_Text":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم نصية.","1_3_5_H98.InvalidAutoComplete_Multiline":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم متعددة الخطوط.","1_3_5_H98.InvalidAutoComplete_Password":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم كلمات المرور.","1_3_5_H98.InvalidAutoComplete_Url":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم الرابط.","1_3_5_H98.InvalidAutoComplete_Telephone":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم الهاتف.","1_3_5_H98.InvalidAutoComplete_Numeric":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم رقمية.","1_3_5_H98.InvalidAutoComplete_Month":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم شهر.","1_3_5_H98.InvalidAutoComplete_Date":"قيمة التكميل التلقائي غير صالحة: {{x}}. العنصر لا ينتمي إلى مجموعة تحكم تاريخ.","1_3_5_H98.Purpose":"تحقق من أن حقل الإدخال يخدم غرضًا محددًا في قسم أغراض الإدخال لمكونات واجهة المستخدم؛ وأن المحتوى مطبق باستخدام التقنيات الداعمة لتحديد المعنى المتوقع لبيانات الإدخال الخاصة بالنموذج.","1_3_5_H98.MissingAutocomplete":"هذا العنصر لا يحتوي على سمة التكميل التلقائي. إذا كان هذا الحقل يجمع معلومات عن المستخدم، ففكر في إضافة واحدة للامتثال لهذا المعيار الناجح.","1_3_6_ARIA11.Check":"تحقق من أن غرض مكونات واجهة المستخدم، والأيقونات، والمناطق يمكن تحديده برمجيًا.","1_4_1_G14,G18":"تحقق من أن أي معلومات يتم نقلها باستخدام اللون وحده متاحة أيضًا في النص، أو من خلال إشارات بصرية أخرى.","1_4_2_F23":"إذا احتوى هذا العنصر على صوت يتم تشغيله تلقائيًا لأكثر من 3 ثوان، تحقق من وجود القدرة على إيقاف الصوت مؤقتًا، أو إيقافه، أو كتم الصوت.","1_4_3_F24.BGColour":"تحقق من أن هذا العنصر يحتوي على لون خلفية موروث لاستكمال لون الخلفية أو الصورة المضمنة المتناظرة.","1_4_3_F24.FGColour":"تحقق من أن هذا العنصر يحتوي على لون خلفية أو صورة موروثة لاستكمال لون الخلفية المضمنة المتناظرة.","1_4_3_G18_or_G145.Abs":"هذا العنصر موضوع بشكل مطلق ولا يمكن تحديد لون الخلفية. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من الخلفية على الأقل {{required}}:1.","1_4_3_G18_or_G145.BgImage":"نص هذا العنصر موضوع على صورة خلفية. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من الصورة على الأقل {{required}}:1.","1_4_3_G18_or_G145.BgGradient":"نص هذا العنصر موضوع على تدرج. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من التدرج على الأقل {{required}}:1.","1_4_3_G18_or_G145.Alpha":"نص أو خلفية هذا العنصر يحتوي على شفافية. تأكد من أن نسبة التباين بين النص والخلفية على الأقل {{required}}:1.","1_4_3_G18_or_G145.Fail":"هذا العنصر يحتوي على تباين غير كافٍ عند هذا المستوى من التوافق. كان من المتوقع نسبة تباين على الأقل {{required}}:1، ولكن النص في هذا العنصر يحتوي على نسبة تباين قدرها {{value}}:1.","1_4_3_G18_or_G145.Fail.Recomendation":"التوصية: ","1_4_3_G18_or_G145.Fail.Recomendation.Text":"غير لون النص إلى {{value}}","1_4_3_G18_or_G145.Fail.Recomendation.Background":"غير الخلفية إلى {{value}}","1_4_4_G142":"تحقق من أن النص يمكن تغيير حجمه بدون تقنية مساعدة حتى 200 في المائة دون فقدان المحتوى أو الوظيفة.","1_4_5_G140,C22,C30.AALevel":"إذا كانت التقنيات المستخدمة يمكن أن تحقق العرض البصري، تحقق من استخدام النص لنقل المعلومات بدلاً من صور النص، إلا عندما تكون صورة النص ضرورية للمعلومات المنقولة، أو يمكن تخصيصها بصريًا لمتطلبات المستخدم.","1_4_6_G18_or_G17.Abs":"هذا العنصر موضوع بشكل مطلق ولا يمكن تحديد لون الخلفية. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من الخلفية على الأقل {{required}}:1.","1_4_6_G18_or_G17.BgImage":"نص هذا العنصر موضوع على صورة خلفية. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من الصورة على الأقل {{required}}:1.","1_4_6_G18_or_G17.BgGradient":"نص هذا العنصر موضوع على تدرج. تأكد من أن نسبة التباين بين النص وجميع الأجزاء المغطاة من التدرج على الأقل {{required}}:1.","1_4_6_G18_or_G17.Fail":"هذا العنصر يحتوي على تباين غير كافٍ عند هذا المستوى من التوافق. كان من المتوقع نسبة تباين على الأقل {{required}}:1، ولكن النص في هذا العنصر يحتوي على نسبة تباين قدرها {{value}}:1.","1_4_6_G18_or_G17.Fail.Recomendation":"التوصية: ","1_4_6_G18_or_G17.Fail.Recomendation.Text":"غير لون النص إلى {{value}}","1_4_6_G18_or_G17.Fail.Recomendation.Background":"غير الخلفية إلى {{value}}","1_4_7_G56":"بالنسبة للمحتوى الصوتي المسجل فقط في هذا العنصر والذي يتكون أساسًا من كلام (مثل التعليق الصوتي)، يجب أن تكون أي أصوات خلفية قابلة للكتم، أو أن تكون أخف بمقدار 20 ديسيبل (أو حوالي 4 أضعاف) من الكلام.","1_4_8_G148,G156,G175":"تحقق من وجود آلية متاحة للمستخدم لاختيار ألوان الخلفية والنص الأمامية لكتل النص، إما من خلال صفحة الويب أو المتصفح.","1_4_8_H87,C20":"تحقق من وجود آلية لتقليل عرض كتلة النص إلى لا أكثر من 80 حرفًا (أو 40 بالنسبة للكتابة باللغات الصينية، اليابانية أو الكورية).","1_4_8_C19,G172,G169":"تحقق من أن كتل النص ليست مبررة بالكامل - أي، إلى حواف اليمين واليسار - أو أن يكون هناك آلية متوفرة لإزالة التبرير الكامل.","1_4_8_G188,C21":"تحقق من أن تباعد الأسطر في كتل النص على الأقل 150% في الفقرات، وتباعد الفقرات على الأقل 1.5 مرة من تباعد الأسطر، أو أن يكون هناك آلية متاحة لتحقيق ذلك.","1_4_8_H87,G146,C26":"تحقق من أنه يمكن تغيير حجم النص بدون تقنية مساعدة حتى 200 في المائة دون تطلب من المستخدم التمرير أفقيًا على نافذة ملء الشاشة.","1_4_9_G140,C22,C30.NoException":"تحقق من أن صور النص تُستخدم فقط للزينة البحتة أو عندما تكون العرض المحدد للنص ضروريًا للمعلومات المنقولة.","1_4_10_C32,C31,C33,C38,SCR34,G206.Check":"تحقق من أن المحتوى يمكن تقديمه بدون فقدان المعلومات أو الوظيفة، وبدون الحاجة إلى التمرير في بُعدين لـ: التمرير الرأسي للمحتوى بعرض مكافئ لـ 320 بكسل CSS؛ التمرير الأفقي للمحتوى بارتفاع مكافئ لـ 256 بكسل CSS؛ باستثناء الأجزاء من المحتوى التي تتطلب تخطيطًا ثنائي الأبعاد للاستخدام أو المعنى.","1_4_10_C32,C31,C33,C38,SCR34,G206.Fixed":"هذا العنصر يحتوي على 'position: fixed'. قد يتطلب هذا التمرير في بعدين، وهو ما يعتبر فشلًا لهذا المعيار الناجح.","1_4_10_C32,C31,C33,C38,SCR34,G206.Scrolling":"قد يتطلب النص المنسق التمرير في بعدين، وهو ما يعتبر فشلاً لهذا المعيار الناجح.","1_4_10_C32,C31,C33,C38,SCR34,G206.Zoom":"التدخل في قدرة وكيل المستخدم على التكبير قد يكون فشلاً لهذا المعيار الناجح.","1_4_11_G195,G207,G18,G145,G174,F78.Check":"تحقق من أن العرض البصري للعناصر التالية يحتوي على نسبة تباين لوني لا تقل عن 3:1 مقابل اللون المجاور(الألوان): مكونات واجهة المستخدم: المعلومات البصرية المطلوبة لتحديد مكونات وحالات واجهة المستخدم، باستثناء المكونات الغير نشطة أو عندما يتم تحديد مظهر المكون بواسطة وكيل المستخدم ولا يتم تعديله بواسطة المؤلف؛ الأشياء الرسومية: أجزاء من الرسومات اللازمة لفهم المحتوى، باستثناء عندما تكون عرض الرسومات معين بشكل أساسي للمعلومات المنقولة.","1_4_12_C36,C35.Check":"تحقق من عدم وجود فقدان للمحتوى أو الوظيفة عن طريق تعيين كل مما يلي وعدم تغيير أي خاصية أسلوب أخرى: ارتفاع الخط (مسافة الخط) إلى ما لا يقل عن 1.5 مرات حجم الخط؛ مسافة التالية للفقرات إلى ما لا يقل عن 2 مرة حجم الخط؛ التباعد بين الأحرف (تتبع) إلى ما لا يقل عن 0.12 مرة حجم الخط؛ تباعد الكلمات إلى ما لا يقل عن 0.16 مرة حجم الخط.","1_4_13_F95.Check":"تحقق من أنه عند استقبال ثم إزالة تمرير المؤشر أو التركيز بلوحة المفاتيح يتسبب في ظهور محتوى إضافي ثم يختفي، الشروط التالية صحيحة: يمكن إلغاء: التسليم متاح لإلغاء المحتوى الإضافي دون تحريك تمرير المؤشر أو التركيز بلوحة المفاتيح، ما لم يتم التواصل مع خطأ في الإدخال أو لا يحجب أو يستبدل المحتوى الآخر؛ قابل للتمرير عليه: إذا يمكن لتمرير المؤشر تفعيل المحتوى الإضافي، فإن المؤشر يمكن تحريكه فوق المحتوى الإضافي دون اختفاء المحتوى الإضافي؛ مستمر: المحتوى الإضافي يظل ظاهراً حتى يتم إزالة محفز التمرير أو التركيز، أو يقوم المستخدم بإلغائه، أو تصبح معلوماته غير صالحة.","2_1_1_G90":"تأكد من توفر الوظائف التي يوفرها معالج الأحداث لهذا العنصر من خلال لوحة المفاتيح","2_1_1_SCR20.DblClick":"تأكد من توفر الوظائف التي يوفرها النقر المزدوج على هذا العنصر من خلال لوحة المفاتيح.","2_1_1_SCR20.MouseOver":"تأكد من توفر الوظائف التي يوفرها تمرير الماوس فوق هذا العنصر من خلال لوحة المفاتيح؛ على سبيل المثال، باستخدام حدث التركيز.","2_1_1_SCR20.MouseOut":"تأكد من توفر الوظائف التي يوفرها تمرير الماوس خارج هذا العنصر من خلال لوحة المفاتيح؛ على سبيل المثال، باستخدام حدث الغموض.","2_1_1_SCR20.MouseMove":"تأكد من توفر الوظائف التي يوفرها تحريك الماوس على هذا العنصر من خلال لوحة المفاتيح.","2_1_1_SCR20.MouseDown":"تأكد من توفر الوظائف التي يوفرها الضغط بالماوس على هذا العنصر من خلال لوحة المفاتيح؛ على سبيل المثال، باستخدام حدث keydown.","2_1_1_SCR20.MouseUp":"تأكد من توفر الوظائف التي يوفرها رفع الماوس عن هذا العنصر من خلال لوحة المفاتيح؛ على سبيل المثال، باستخدام حدث keyup.","2_1_2_F10":"تحقق من أن هذا البرنامج الإضافي أو التطبيق يوفر القدرة على نقل التركيز بعيدًا عن نفسه عند استخدام لوحة المفاتيح.","2_1_4.Check":"تحقق من أنه إذا تم تطبيق اختصار لوحة المفاتيح في المحتوى باستخدام أحرف (بما في ذلك الأحرف الكبيرة والصغيرة)، علامات الترقيم، أرقام، أو رموز الأحرف فقط، فإن واحدًا على الأقل مما يلي صحيح: إيقاف: توفر آلية لإيقاف الاختصار؛ إعادة تعيين: توفر آلية لإعادة تعيين الاختصار لاستخدام واحد أو أكثر من أحرف لوحة المفاتيح غير القابلة للطباعة (مثل Ctrl، Alt، إلخ)؛ نشط فقط عند التركيز: اختصار لوحة المفاتيح لمكون واجهة المستخدم نشط فقط عندما يتم التركيز على ذلك المكون.","2_2_1_F40.2":"يتم استخدام وسم التحديث التلقائي للانتقال إلى صفحة أخرى، مع حد زمني ليس صفرًا. لا يمكن للمستخدمين التحكم في هذا الحد الزمني.","2_2_1_F41.2":"يتم استخدام وسم التحديث التلقائي لتحديث الصفحة الحالية. لا يمكن للمستخدمين التحكم في الحد الزمني لهذا التحديث.","2_2_2_SCR33,SCR22,G187,G152,G186,G191":"إذا تحرك أي جزء من المحتوى، أو تمرير أو وميض لأكثر من 5 ثوانٍ، أو تم تحديثه تلقائيًا، تحقق من وجود آلية متاحة لإيقاف، أو إيقاف، أو إخفاء المحتوى.","2_2_2_F4":"تأكد من وجود آلية متاحة لإيقاف هذا العنصر الوامض في أقل من خمس ثوان.","2_2_2_F47":"لا يمكن لعناصر الوميض تلبية الشرط الذي ينص على أن المعلومات الوامضة يمكن إيقافها في غضون خمس ثوان.","2_2_3_G5":"تحقق من أن التوقيت ليس جزءًا أساسيًا من الحدث أو النشاط الذي يقدمه المحتوى، باستثناء الوسائط المتزامنة غير التفاعلية والأحداث الزمنية الفعلية.","2_2_4_SCR14":"تحقق من أن جميع الانقطاعات (بما في ذلك التحديثات للمحتوى) يمكن تأجيلها أو قمعها بواسطة المستخدم، باستثناء الانقطاعات التي تتضمن حالة طارئة.","2_2_5_G105,G181":"إذا كانت هذه الصفحة الويب جزءًا من مجموعة صفحات ويب بها حد زمني للخمول، تحقق من أن المستخدم المصادق يمكنه متابعة النشاط دون فقدان البيانات بعد إعادة المصادقة.","2_2_6.Check":"تحقق من أن المستخدمين يتم تحذيرهم من مدة أي خمول للمستخدم قد يتسبب في فقدان البيانات، ما لم يتم الحفاظ على البيانات لأكثر من 20 ساعة عندما لا يتخذ المستخدم أي إجراءات.","2_3_1_G19,G176":"تحقق من أن أي مكون من مكونات المحتوى لا يومض أكثر من ثلاث مرات في أي فترة مدتها ثانية واحدة، أو أن حجم أي منطقة وامضة صغير بما فيه الكفاية.","2_3_2_G19":"تحقق من أن أي مكون من مكونات المحتوى لا يومض أكثر من ثلاث مرات في أي فترة مدتها ثانية واحدة.","2_3_3.Check":"تحقق من أن حركة الرسوم المتحركة التي يتم تفعيلها بالتفاعل يمكن تعطيلها، ما لم تكن الرسوم المتحركة ضرورية للوظيفة أو المعلومات المنقولة.","2_4_1_H64.1":"يتطلب عنصر الإطار iframe وجود سمة عنوان غير فارغة تحدد الإطار.","2_4_1_H64.2":"تحقق من أن سمة العنوان لهذا العنصر تحتوي على نص يحدد الإطار.","2_4_1_G1,G123,G124,H69":"تأكد من أنه يمكن تجاوز أي عناصر تنقل مشتركة؛ على سبيل المثال، باستخدام روابط التخطي، عناصر الرأس، أو أدوار علامة ARIA.","2_4_1_G1,G123,G124.NoSuchID":"هذا الرابط يشير إلى مرساة مسماة '{{id}}' داخل المستند، ولكن لا يوجد مرساة موجودة بهذا الاسم.","2_4_1_G1,G123,G124.NoSuchIDFragment":"هذا الرابط يشير إلى مرساة مسماة '{{id}}' داخل المستند، ولكن لا يوجد مرساة موجودة بهذا الاسم في الجزء المختبر.","2_4_2_H25.1.NoHeadEl":"لا يوجد قسم رأس فيه لوضع عنصر عنوان وصفي.","2_4_2_H25.1.NoTitleEl":"يجب توفير عنوان للمستند، باستخدام عنصر عنوان غير فارغ في قسم الرأس.","2_4_2_H25.1.EmptyTitle":"يجب أن يكون عنصر العنوان في قسم الرأس غير فارغ.","2_4_2_H25.2":"تحقق من أن عنصر العنوان يصف المستند.","2_4_3_H4.2":"إذا تم استخدام tabindex، تحقق من أن الترتيب التبويب المحدد بواسطة سمات tabindex يتبع العلاقات في المحتوى.","2_4_4_H77,H78,H79,H80,H81,H33":"تحقق من أن نص الرابط مقرونًا بسياق الرابط المحدد برمجيًا، أو سمة العنوان الخاصة به، تحدد غرض الرابط.","2_4_4_H77,H78,H79,H80,H81":"تحقق من أن نص الرابط مقرونًا بسياق الرابط المحدد برمجيًا يحدد غرض الرابط.","2_4_5_G125,G64,G63,G161,G126,G185":"إذا لم تكن هذه الصفحة الويب جزءًا من عملية خطية، تحقق من وجود أكثر من طريقة لتحديد موقع هذه الصفحة الويب ضمن مجموعة من صفحات الويب.","2_4_6_G130,G131":"تحقق من أن العناوين والتسميات توضح الموضوع أو الغرض.","2_4_7_G149,G165,G195,C15,SCR31":"تحقق من وجود وضع تشغيل واحد على الأقل حيث يمكن تحديد مؤشر التركيز باستخدام لوحة المفاتيح بصريًا على عناصر واجهة المستخدم.","2_4_8_H59.1":"يمكن تحديد عناصر الرابط في قسم الرأس من المستند فقط.","2_4_8_H59.2a":"عنصر الرابط يفتقد إلى سمة rel غير فارغة تحدد نوع الرابط.","2_4_8_H59.2b":"عنصر الرابط يفتقد إلى سمة href غير فارغة تشير إلى المورد المرتبط.","2_4_9_H30":"تحقق من أن نص الرابط يصف غرض الرابط.","2_5_1.Check":"تحقق من أن جميع الوظائف التي تستخدم الإيماءات المتعددة النقاط أو المسار يمكن تشغيلها بمؤشر واحد دون إيماءة مبنية على مسار، ما لم تكن الإيماءة متعددة النقاط أو المسار ضرورية.","2_5_2.SinglePointer_Check":"تحقق من أنه بالنسبة للوظائف التي يمكن تشغيلها باستخدام مؤشر واحد، يكون واحد على الأقل مما يلي صحيحًا: لا يتم استخدام حدث الضغط: لا يتم استخدام حدث الضغط للمؤشر لتنفيذ أي جزء من الوظيفة؛ إلغاء أو تراجع: يكون إكمال الوظيفة عند حدث الرفع، وتتوفر آلية لإلغاء الوظيفة قبل الإكمال أو للتراجع عن الوظيفة بعد الإكمال؛ عكس حدث الرفع: حدث الرفع يعكس أي نتيجة لحدث الضغط السابق؛ ضروري: إكمال الوظيفة عند حدث الضغط ضروري.","2_5_2.Mousedown_Check":"هذا العنصر لديه مستمع لحدث mousedown. تحقق من أنه بالنسبة للوظائف التي يمكن تشغيلها باستخدام مؤشر واحد، يكون واحد على الأقل مما يلي صحيحًا: لا يتم استخدام حدث الضغط: لا يتم استخدام حدث الضغط للمؤشر لتنفيذ أي جزء من الوظيفة؛ إلغاء أو تراجع: يكون إكمال الوظيفة عند حدث الرفع، وتتوفر آلية لإلغاء الوظيفة قبل الإكمال أو للتراجع عن الوظيفة بعد الإكمال؛ عكس حدث الرفع: حدث الرفع يعكس أي نتيجة لحدث الضغط السابق؛ ضروري: إكمال الوظيفة عند حدث الضغط ضروري.","2_5_2.Touchstart_Check":"هذا العنصر لديه مستمع لحدث touchstart. تحقق من أنه بالنسبة للوظائف التي يمكن تشغيلها باستخدام مؤشر واحد، يكون واحد على الأقل مما يلي صحيحًا: لا يتم استخدام حدث الضغط: لا يتم استخدام حدث الضغط للمؤشر لتنفيذ أي جزء من الوظيفة؛ إلغاء أو تراجع: يكون إكمال الوظيفة عند حدث الرفع، وتتوفر آلية لإلغاء الوظيفة قبل الإكمال أو للتراجع عن الوظيفة بعد الإكمال؛ عكس حدث الرفع: حدث الرفع يعكس أي نتيجة لحدث الضغط السابق؛ ضروري: إكمال الوظيفة عند حدث الضغط ضروري.","2_5_3_F96.Check":"تحقق من أنه بالنسبة لعناصر واجهة المستخدم التي تحتوي على تسميات تشمل نصًا أو صورًا للنص، يحتوي الاسم على النص المقدم بصريًا.","2_5_3_F96.AccessibleName":"الاسم القابل للوصول لهذا العنصر لا يحتوي على نص التسمية المرئي. تحقق من أنه بالنسبة لعناصر واجهة المستخدم التي تحتوي على تسميات تشمل نصًا أو صورًا للنص، يحتوي الاسم على النص المقدم بصريًا.","2_5_4.Check":"تحقق من أن الوظائف التي يمكن تشغيلها عن طريق حركة الجهاز أو حركة المستخدم يمكن أيضًا تشغيلها عن طريق عناصر واجهة المستخدم ويمكن تعطيل الاستجابة للحركة لمنع التشغيل العرضي، إلا عندما: تستخدم واجهة مدعومة: يتم استخدام الحركة لتشغيل الوظيفة من خلال واجهة مدعومة بالوصول؛ ضروري: الحركة ضرورية للوظيفة والقيام بذلك سيبطل النشاط.","2_5_4.Devicemotion":"هذا العنصر لديه مستمع لحدث devicemotion. تحقق من أن الوظائف التي يمكن تشغيلها عن طريق حركة الجهاز أو حركة المستخدم يمكن أيضًا تشغيلها عن طريق عناصر واجهة المستخدم ويمكن تعطيل الاستجابة للحركة لمنع التشغيل العرضي، إلا عندما: تستخدم واجهة مدعومة: يتم استخدام الحركة لتشغيل الوظيفة من خلال واجهة مدعومة بالوصول؛ ضروري: الحركة ضرورية للوظيفة والقيام بذلك سيبطل النشاط.","2_5_5.Check":"تحقق من أن حجم الهدف لمدخلات المؤشر لا يقل عن 44 في 44 بكسل CSS، إلا عندما: مكافئ: يتوفر الهدف من خلال رابط مكافئ أو عنصر تحكم على نفس الصفحة والذي يبلغ حجمه على الأقل 44 في 44 بكسل CSS؛ داخل النص: يكون الهدف في جملة أو كتلة من النص؛ تحكم وكيل المستخدم: يتم تحديد حجم الهدف بواسطة وكيل المستخدم ولا يتم تعديله بواسطة المؤلف؛ ضروري: عرض الهدف بطريقة معينة ضروري لنقل المعلومات.","2_5_6.Check":"تحقق من أن المحتوى لا يقيد استخدام وسائط الإدخال المتاحة على منصة ما إلا عندما يكون القيد ضروريًا، أو مطلوبًا لضمان أمان المحتوى، أو مطلوبًا لاحترام إعدادات المستخدم.","3_1_1_H57.2":"يجب أن يحتوي عنصر html على سمة lang أو xml:lang تصف لغة المستند.","3_1_1_H57.3.Lang":"اللغة المحددة في سمة lang لعنصر المستند لا تبدو مكتوبة بشكل صحيح.","3_1_1_H57.3.XmlLang":"اللغة المحددة في سمة xml:lang لعنصر المستند لا تبدو مكتوبة بشكل صحيح.","3_1_2_H58":"تأكد من تمييز أي تغيير في اللغة باستخدام سمة اللغة lang و/أو xml:lang على عنصر، حسب الاقتضاء.","3_1_2_H58.1.Lang":"اللغة المحددة في سمة اللغة lang لهذا العنصر لا تبدو مكتوبة بشكل صحيح.","3_1_2_H58.1.XmlLang":"اللغة المحددة في سمة xml:lang لهذا العنصر لا تبدو مكتوبة بشكل صحيح.","3_1_3_H40,H54,H60,G62,G70":"تحقق من توفر آلية لتحديد التعريفات الخاصة بكلمات أو عبارات تُستخدم بطريقة غير عادية أو محدودة، بما في ذلك الاصطلاحات والجargon.","3_1_4_G102,G55,G62,H28,G97":"تحقق من توفر آلية لتحديد الشكل الموسع أو معنى الاختصارات.","3_1_5_G86,G103,G79,G153,G160":"حيث يتطلب المحتوى قدرة قراءة أكثر تقدمًا من مستوى التعليم الثانوي الأدنى، يجب توفير محتوى إضافي أو نسخة بديلة.","3_1_6_H62.1.HTML5":"عنصر Ruby لا يحتوي على عنصر rt يحتوي على معلومات النطق لنصه.","3_1_6_H62.1.XHTML11":"عنصر Ruby لا يحتوي على عنصر rt يحتوي على معلومات النطق للنص داخل عنصر rb.","3_1_6_H62.2":"عنصر Ruby لا يحتوي على عناصر rp، التي توفر علامات ترقيم إضافية إلى المتصفحات التي لا تدعم نص ruby.","3_2_1_G107":"تحقق من أن تغيير السياق لا يحدث عندما يتلقى هذا الحقل المدخل التركيز.","3_2_2_H32.2":'هذا النموذج لا يحتوي على زر إرسال، مما يخلق مشاكل لأولئك الذين لا يستطيعون إرسال النموذج باستخدام لوحة المفاتيح. أزرار الإرسال هي عناصر INPUT مع سمة النوع "submit" أو "image"، أو عناصر BUTTON مع نوع "submit" أو مُهمل/غير صالح.',"3_2_3_G61":"تحقق من أن آليات التنقل المتكررة على صفحات ويب متعددة تحدث بنفس الترتيب النسبي في كل مرة يتم تكرارها، ما لم يبادر المستخدم بتغيير.","3_2_4_G197":"تحقق من أن المكونات التي لها نفس الوظيفة ضمن هذه الصفحة الويب محددة بشكل متسق في مجموعة الصفحات الويب التي تنتمي إليها.","3_2_5_H83.3":"تحقق من أن نص الرابط هذا يحتوي على معلومات تشير إلى أن الرابط سيفتح في نافذة جديدة.","3_3_1_G83,G84,G85":"إذا تم اكتشاف خطأ في الإدخال تلقائيًا في هذا النموذج، تحقق من تحديد العنصر(العناصر) المعني(المعنية) بالخطأ ووصف الخطأ(أخطاء) للمستخدم بنص.","3_3_2_G131,G89,G184,H90":"تحقق من توفير تسميات واصفة أو تعليمات (بما في ذلك للحقول المطلوبة) لإدخال المستخدم في هذا النموذج.","3_3_3_G177":"تحقق من أن هذا النموذج يوفر تصحيحات مقترحة لأخطاء إدخال المستخدم، ما لم يعرض ذلك الأمان أو الغرض من المحتوى للخطر.","3_3_4_G98,G99,G155,G164,G168.LegalForms":"إذا كان هذا النموذج سيُلزم المستخدم بالتزام مالي أو قانوني، أو يعدل/يحذف بيانات يمكن للمستخدم التحكم فيها، أو يقدم استجابات للاختبار، فتأكد من أن الإرساليات إما قابلة للعكس، أو تم التحقق منها بحثًا عن أخطاء الإدخال، و/أو تم تأكيدها من قبل المستخدم.","3_3_5_G71,G184,G193":"تحقق من توفر المساعدة الحساسة للسياق لهذا النموذج، على مستوى صفحة الويب و/أو على مستوى التحكم.","3_3_6_G98,G99,G155,G164,G168.AllForms":"تحقق من أن الإرساليات لهذا النموذج إما قابلة للعكس، أو تم التحقق منها بحثًا عن أخطاء في الإدخال، و/أو تم تأكيدها من قبل المستخدم.","4_1_2_H91.A.Empty":"تم العثور على عنصر الرابط مع معرف ولكن بدون href أو نص رابط. فكر في نقل معرفه إلى عنصر أصل أو قريب.","4_1_2_H91.A.EmptyWithName":"تم العثور على عنصر الرابط بصفة اسم ولكن بدون href أو نص رابط. فكر في نقل الصفة الاسمية لتصبح معرفاً لعنصر أصل أو قريب.","4_1_2_H91.A.EmptyNoId":"تم العثور على عنصر الرابط بدون محتوى رابط ولا صفة اسم و/أو معرف.","4_1_2_H91.A.NoHref":"يجب عدم استخدام عناصر الربط لتحديد أهداف ربط داخل الصفحة. إذا لم تستخدم المعرف لأغراض أخرى (مثل CSS أو البرمجة)، فكر في نقله إلى عنصر أصل.","4_1_2_H91.A.Placeholder":"تم العثور على عنصر الرابط مع محتوى رابط، ولكن لم يتم توفير صفة href، معرف، أو اسم.","4_1_2_H91.A.NoContent":"تم العثور على عنصر الرابط مع صفة href صالحة، ولكن لم يتم توفير محتوى رابط.","4_1_2_input_element":"عنصر input","4_1_2_element_content":"محتوى العنصر","4_1_2_element":"عنصر","4_1_2_msg_pattern":"هذا ال{{msgNodeType}} لا يملك اسمًا متاحًا لواجهة برمجة التطبيقات الخاصة بالإتاحة. الأسماء الصالحة هي: {{builtAttrs}}.","4_1_2_msg_pattern_role_of_button":'هذا العنصر له دور "زر" ولكن لا يملك اسمًا متاحًا لواجهة برمجة التطبيقات الخاصة بالإتاحة. الأسماء الصالحة هي: {{builtAttrs}}.',"4_1_2_msg_pattern2":"هذا ال{{msgNodeType}} لا يملك قيمة متاحة لواجهة برمجة التطبيقات الخاصة بالإتاحة.","4_1_2_msg_add_one":"أضف واحدة عن طريق إضافة محتوى إلى العنصر.","4_1_2_msg_pattern3":"هذا ال{{msgNodeType}} لا يملك خيارًا مختارًا بشكل أولي. حسب نسخة HTML الخاصة بك، قد تكون القيمة المعرضة لواجهة برمجة التطبيقات الخاصة بالإتاحة غير محددة.","4_1_2_value_exposed_using_attribute":"القيمة معرضة باستخدام الصفة {{requiredValue}}.","4_1_2_value_exposed_using_element":"القيمة معرضة باستخدام عنصر {{requiredValue}}.","4_1_3_ARIA22,G199,ARIA19,G83,G84,G85,G139,G177,G194,ARIA23.Check":"تحقق من أن رسائل الحالة يمكن تحديدها برمجيًا من خلال الدور أو الخواص بحيث يمكن تقديمها للمستخدم بواسطة تقنيات المساعدة دون تلقي التركيز."},e.HTMLCS_Section508={name:"Section508",description:"U.S. Section 508 Standard",sniffs:["A","B","C","D","G","H","I","J","K","L","M","N","O","P"]},e.HTMLCS_Section508_Sniffs_A={get register(){return["_top","img","object","bgsound","audio"]},process:function(e,t){e===t?(this.addNullAltTextResults(t),this.addMediaAlternativesResults(t)):"OBJECT"!==(t=e.nodeName)&&"BGSOUND"!==t&&"AUDIO"!==t||HTMLCS.addMessage(HTMLCS.NOTICE,e,"For multimedia containing audio only, ensure an alternative is available, such as a full text transcript.","Audio")},testNullAltText:function(e){var t={img:{generalAlt:[],missingAlt:[],ignored:[],nullAltWithTitle:[],emptyAltInLink:[]},inputImage:{generalAlt:[],missingAlt:[]},area:{generalAlt:[],missingAlt:[]}};for(let a of HTMLCS.util.getAllElements(e,'img, area, input[type="image"]')){let e=!1,r=!1,l=!1;if("A"===a.parentNode.nodeName){var i=HTMLCS.util.getPreviousSiblingElement(a,null),n=HTMLCS.util.getNextSiblingElement(a,null);if(null===i&&null===n){let t=a.parentNode.textContent;t=void 0!==a.parentNode.textContent?a.parentNode.textContent:a.parentNode.innerText,!0===HTMLCS.util.isStringEmpty(t)&&(e=!0)}}switch(!1===a.hasAttribute("alt")?r=!0:a.getAttribute("alt")&&!0!==HTMLCS.util.isStringEmpty(a.getAttribute("alt"))||(l=!0),a.nodeName){case"IMG":!0!==e||!0!==r&&!0!==l?(!0===r?t.img.missingAlt:!0===l?!0===a.hasAttribute("title")&&!1===HTMLCS.util.isStringEmpty(a.getAttribute("title"))?t.img.nullAltWithTitle:t.img.ignored:t.img.generalAlt).push(a):t.img.emptyAltInLink.push(a.parentNode);break;case"INPUT":(!0===r||!0===l?t.inputImage.missingAlt:t.inputImage.generalAlt).push(a);break;case"AREA":(!0===r||!0===l?t.area.missingAlt:t.inputImage.generalAlt).push(a)}}return t},addNullAltTextResults:function(e){for(let t of(e=this.testNullAltText(e)).img.emptyAltInLink)HTMLCS.addMessage(HTMLCS.ERROR,t,"Img element is the only content of the link, but is missing alt text. The alt text should describe the purpose of the link.","Img.EmptyAltInLink");for(let t of e.img.nullAltWithTitle)HTMLCS.addMessage(HTMLCS.ERROR,t,"Img element with empty alt text must have absent or empty title attribute.","Img.NullAltWithTitle");for(let t of e.img.ignored)HTMLCS.addMessage(HTMLCS.WARNING,t,"Img element is marked so that it is ignored by Assistive Technology.","Img.Ignored");for(let t of e.img.missingAlt)HTMLCS.addMessage(HTMLCS.ERROR,t,"Img element missing an alt attribute. Use the alt attribute to specify a short text alternative.","Img.MissingAlt");for(let t of e.img.generalAlt)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Ensure that the img element's alt text serves the same purpose and presents the same information as the image.","Img.GeneralAlt");for(let t of e.inputImage.missingAlt)HTMLCS.addMessage(HTMLCS.ERROR,t,"Image submit button missing an alt attribute. Specify a text alternative that describes the button's function, using the alt attribute.","InputImage.MissingAlt");for(let t of e.inputImage.generalAlt)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Ensure that the image submit button's alt text identifies the purpose of the button.","InputImage.GeneralAlt");for(let t of e.area.missingAlt)HTMLCS.addMessage(HTMLCS.ERROR,t,"Area element in an image map missing an alt attribute. Each area element must have a text alternative that describes the function of the image map area.","Area.MissingAlt");for(let t of e.area.generalAlt)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Ensure that the area element's text alternative serves the same purpose as the part of image map image it references.","Area.GeneralAlt")},testMediaTextAlternatives:function(e){var t={object:{missingBody:[],generalAlt:[]},applet:{missingBody:[],missingAlt:[],generalAlt:[]}};for(let i of HTMLCS.util.getAllElements(e,"object"))null===i.querySelector("object")&&(""===HTMLCS.util.getElementTextContent(i,!0)?t.object.missingBody:t.object.generalAlt).push(i);for(let n of HTMLCS.util.getAllElements(e,"applet")){let e=!1;null===n.querySelector("object")&&(i=HTMLCS.util.getElementTextContent(n,!0),!0===HTMLCS.util.isStringEmpty(i))&&(t.applet.missingBody.push(n),e=!0);var i=n.getAttribute("alt")||"";HTMLCS.util.isStringEmpty(i)&&(t.applet.missingAlt.push(n),e=!0),e||t.applet.generalAlt.push(n)}return t},addMediaAlternativesResults:function(e){for(let t of(e=HTMLCS_WCAG2AAA_Sniffs_Principle1_Guideline1_1_1_1_1.testMediaTextAlternatives(e)).object.missingBody)HTMLCS.addMessage(HTMLCS.ERROR,t,"Object elements must contain a text alternative after all other alternatives are exhausted.","Object.MissingBody");for(let t of e.object.generalAlt)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Check that short (and if appropriate, long) text alternatives are available for non-text content that serve the same purpose and present the same information.","Object.GeneralAlt");for(let t of e.applet.missingBody)HTMLCS.addMessage(HTMLCS.ERROR,t,"Applet elements must contain a text alternative in the element's body, for browsers without support for the applet element.","Applet.MissingBody");for(let t of e.applet.missingAlt)HTMLCS.addMessage(HTMLCS.ERROR,t,"Applet elements must contain an alt attribute, to provide a text alternative to browsers supporting the element but are unable to load the applet.","Applet.MissingAlt");for(let t of e.applet.generalAlt)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Check that short (and if appropriate, long) text alternatives are available for non-text content that serve the same purpose and present the same information.","Applet.GeneralAlt")}},e.HTMLCS_Section508_Sniffs_B={get register(){return["object","applet","embed","video"]},process:(e,t)=>{HTMLCS.addMessage(HTMLCS.NOTICE,e,"For multimedia containing video, ensure a synchronised audio description or text alternative for the video portion is provided.","Video"),HTMLCS.addMessage(HTMLCS.NOTICE,e,"For multimedia containing synchronised audio and video, ensure synchronised captions are provided for the audio portion.","Captions")}},e.HTMLCS_Section508_Sniffs_C={get register(){return["_top"]},process:(e,t)=>{HTMLCS.addMessage(HTMLCS.NOTICE,t,"Ensure that any information conveyed using colour alone is also available without colour, such as through context or markup.","Colour")}},e.HTMLCS_Section508_Sniffs_D={get register(){return["_top"]},process:function(t,i){t===i&&(HTMLCS.addMessage(HTMLCS.NOTICE,i,"Ensure that content is ordered in a meaningful sequence when linearised, such as when style sheets are disabled.","Linearised"),e.HTMLCS_WCAG2AAA_Sniffs_Principle1_Guideline1_3_1_3_1.testPresentationMarkup(i),this.testHeadingOrder(i),HTMLCS.util.getAllElements(i,'script, link[rel="stylesheet"]').length)&&HTMLCS.addMessage(HTMLCS.NOTICE,i,'If content is hidden and made visible using scripting (such as "click to expand" sections), ensure this content is readable when scripts and style sheets are disabled.',"HiddenText")},testHeadingOrder:function(e){let t=0;for(let n of HTMLCS.util.getAllElements(e,"h1, h2, h3, h4, h5, h6")){var i=parseInt(n.nodeName.substring(1,2));if(1<i-t){let e="should be an h"+(t+1)+" to be properly nested";0===t&&(e="appears to be the primary document heading, so should be an h1 element"),HTMLCS.addMessage(HTMLCS.ERROR,n,"The heading structure is not logically nested. This h"+i+" element "+e+".","HeadingOrder")}t=i}}},e.HTMLCS_Section508_Sniffs_G={get register(){return["table"]},process:(e,t)=>{HTMLCS.util.isLayoutTable(e)&&HTMLCS.addMessage(HTMLCS.NOTICE,e,"This table has no headers. If this is a data table, ensure row and column headers are identified using th elements.","TableHeaders")}},e.HTMLCS_Section508_Sniffs_H={get register(){return["table"]},process:(e,t)=>{var i=HTMLCS.util.testTableHeaders(e);for(let e of i.wrongHeaders)HTMLCS.addMessage(HTMLCS.ERROR,e.element,'Incorrect headers attribute on this td element. Expected "'+e.expected+'" but found "'+e.actual+'"',"IncorrectHeadersAttr");i.required&&!i.allowScope&&(i.used?(0<i.missingThId.length&&HTMLCS.addMessage(HTMLCS.ERROR,e,"Not all th elements in this table contain an id attribute. These cells should contain ids so that they may be referenced by td elements' headers attributes.","MissingHeaderIds"),0<i.missingTd.length&&HTMLCS.addMessage(HTMLCS.ERROR,e,"Not all td elements in this table contain a headers attribute. Each headers attribute should list the ids of all th elements associated with that cell.","IncompleteHeadersAttrs")):HTMLCS.addMessage(HTMLCS.ERROR,e,"The relationship between td elements and their associated th elements is not defined. As this table has multiple levels of th elements, you must use the headers attribute on td elements.","MissingHeadersAttrs"))}},e.HTMLCS_Section508_Sniffs_I={get register(){return["frame","iframe","object"]},process:(e,t)=>{var i=e.nodeName.toLowerCase();!0===(e.hasAttribute("title")&&HTMLCS.util.isStringEmpty(e.getAttribute("title")))&&HTMLCS.addMessage(HTMLCS.ERROR,t,"This "+i+" element is missing title text. Frames should be titled with text that facilitates frame identification and navigation.","Frames")}},e.HTMLCS_Section508_Sniffs_J={get register(){return["_top"]},process:(e,t)=>{HTMLCS.addMessage(HTMLCS.NOTICE,t,"Check that no component of the content flickers at a rate of greater than 2 and less than 55 times per second.","Flicker")}},e.HTMLCS_Section508_Sniffs_K={get register(){return["_top"]},process:(e,t)=>{HTMLCS.addMessage(HTMLCS.NOTICE,t,"If this page cannot be made compliant, a text-only page with equivalent information or functionality should be provided. The alternative page needs to be updated in line with this page's content.","AltVersion")}},e.HTMLCS_Section508_Sniffs_L={get register(){return["_top"]},process:function(e,t){e===t&&(this.addProcessLinksMessages(t),this.testKeyboard(t))},addProcessLinksMessages:function(e){for(let t of(e=this.processLinks(e)).emptyNoId)HTMLCS.addMessage(HTMLCS.ERROR,t,"Anchor element found with no link content and no name and/or ID attribute.","EmptyAnchorNoId");for(let t of e.placeholder)HTMLCS.addMessage(HTMLCS.WARNING,t,"Anchor element found with link content, but no href, ID, or name attribute has been supplied.","PlaceholderAnchor");for(let t of e.noContent)HTMLCS.addMessage(HTMLCS.ERROR,t,"Anchor element found with a valid href attribute, but no link content has been supplied.","NoContentAnchor")},processLinks:function(e){var t={empty:[],emptyWithName:[],emptyNoId:[],noHref:[],placeholder:[],noContent:[]};for(let n of HTMLCS.util.getAllElements(e,"a")){var i=HTMLCS.util.getElementTextContent(n);let e=!1;!1===(e=!0===n.hasAttribute("href")&&!1===/^\s*$/.test(n.getAttribute("href"))||e)?(!0===/^\s*$/.test(i)?n.hasAttribute("id")?t.empty:n.hasAttribute("name")?t.emptyWithName:t.emptyNoId:n.hasAttribute("id")||n.hasAttribute("name")?t.noHref:t.placeholder).push(n):!0===/^\s*$/.test(i)&&0===n.querySelectorAll("img").length&&t.noContent.push(n)}return t},testKeyboard:function(e){for(let t of HTMLCS.util.getAllElements(e,"*[ondblclick]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by double-clicking on this element is available through the keyboard.","DblClick");for(let t of HTMLCS.util.getAllElements(e,"*[onmouseover]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by mousing over this element is available through the keyboard; for instance, using the focus event.","MouseOver");for(let t of HTMLCS.util.getAllElements(e,"*[onmouseout]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by mousing out of this element is available through the keyboard; for instance, using the blur event.","MouseOut");for(let t of HTMLCS.util.getAllElements(e,"*[onmousemove]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by moving the mouse on this element is available through the keyboard.","MouseMove");for(let t of HTMLCS.util.getAllElements(e,"*[onmousedown]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by mousing down on this element is available through the keyboard; for instance, using the keydown event.","MouseDown");for(let t of HTMLCS.util.getAllElements(e,"*[onmouseup]"))HTMLCS.addMessage(HTMLCS.WARNING,t,"Ensure the functionality provided by mousing up on this element is available through the keyboard; for instance, using the keyup event.","MouseUp")}},e.HTMLCS_Section508_Sniffs_M={get register(){return["object","applet","bgsound","embed","audio","video"]},process:(e,t)=>{HTMLCS.addMessage(HTMLCS.NOTICE,e,"If external media requires a plugin or application to view, ensure a link is provided to a plugin or application that complies with Section 508 accessibility requirements for applications.","PluginLink")}},e.HTMLCS_Section508_Sniffs_N={get register(){return["form"]},process:(e,t)=>{"FORM"===e.nodeName&&(HTMLCS.addMessage(HTMLCS.NOTICE,e,"If an input error is automatically detected in this form, check that the item(s) in error are identified and the error(s) are described to the user in text.","Errors"),HTMLCS.addMessage(HTMLCS.NOTICE,e,"Check that descriptive labels or instructions (including for required fields) are provided for user input in this form.","Labels"),HTMLCS.addMessage(HTMLCS.NOTICE,e,"Ensure that this form can be navigated using the keyboard and other accessibility tools.","KeyboardNav"))}},e.HTMLCS_Section508_Sniffs_O={get register(){return["_top","a","area"]},process:(e,t)=>{if(e===t)HTMLCS.addMessage(HTMLCS.NOTICE,t,"Ensure that any common navigation elements can be bypassed; for instance, by use of skip links, header elements, or ARIA landmark roles.","SkipLinks");else if(e.hasAttribute("href")){var i=e.getAttribute("href").trim();if(1<i.length&&"#"===i.charAt(0)){i=i.substring(1);try{let n=t,a=(n.ownerDocument&&(n=n.ownerDocument),null);null!==(a=n&&"function"==typeof n.getElementById&&null===(a=n.getElementById(i))?n.querySelector('a[name="'+i+'"]'):a)&&!1!==HTMLCS.util.contains(t,a)||(!0===HTMLCS.isFullDoc(t)||"BODY"===t.nodeName?HTMLCS.addMessage(HTMLCS.ERROR,e,'This link points to a named anchor "'+i+'" within the document, but no anchor exists with that name.',"NoSuchID"):HTMLCS.addMessage(HTMLCS.WARNING,e,'This link points to a named anchor "'+i+'" within the document, but no anchor exists with that name in the fragment tested.',"NoSuchIDFragment"))}catch(e){}}}}},e.HTMLCS_Section508_Sniffs_P={get register(){return["_top","meta"]},process:(e,t)=>{e===t?HTMLCS.addMessage(HTMLCS.NOTICE,t,"If a timed response is required on this page, alert the user and provide sufficient time to allow them to indicate that more time is required.","TimeLimit"):!0===e.hasAttribute("http-equiv")&&"refresh"===String(e.getAttribute("http-equiv")).toLowerCase()&&!0===/^[1-9]\d*/.test(e.getAttribute("content").toLowerCase())&&(!0===/url=/.test(e.getAttribute("content").toLowerCase())?HTMLCS.addMessage(HTMLCS.ERROR,e,"Meta refresh tag used to redirect to another page, with a time limit that is not zero. Users cannot control this time limit.","MetaRedirect"):HTMLCS.addMessage(HTMLCS.ERROR,e,"Meta refresh tag used to refresh the current page. Users cannot control the time limit for this refresh.","MetaRefresh"))}},e.HTMLCS_WCAG2A={name:"WCAG2A",description:"Web Content Accessibility Guidelines (WCAG) 2.1 A",sniffs:[{standard:"WCAG2AAA",include:["Principle1.Guideline1_1.1_1_1","Principle1.Guideline1_2.1_2_1","Principle1.Guideline1_2.1_2_2","Principle1.Guideline1_2.1_2_3","Principle1.Guideline1_3.1_3_1","Principle1.Guideline1_3.1_3_1_A","Principle1.Guideline1_3.1_3_2","Principle1.Guideline1_3.1_3_3","Principle1.Guideline1_4.1_4_1","Principle1.Guideline1_4.1_4_2","Principle2.Guideline2_1.2_1_1","Principle2.Guideline2_1.2_1_2","Principle2.Guideline2_1.2_1_4","Principle2.Guideline2_2.2_2_1","Principle2.Guideline2_2.2_2_2","Principle2.Guideline2_3.2_3_1","Principle2.Guideline2_4.2_4_1","Principle2.Guideline2_4.2_4_2","Principle2.Guideline2_4.2_4_3","Principle2.Guideline2_4.2_4_4","Principle2.Guideline2_5.2_5_1","Principle2.Guideline2_5.2_5_2","Principle2.Guideline2_5.2_5_3","Principle2.Guideline2_5.2_5_4","Principle3.Guideline3_1.3_1_1","Principle3.Guideline3_2.3_2_1","Principle3.Guideline3_2.3_2_2","Principle3.Guideline3_3.3_3_1","Principle3.Guideline3_3.3_3_2","Principle4.Guideline4_1.4_1_2"]}]},e.HTMLCS_WCAG2AA={name:"WCAG2AA",description:"Web Content Accessibility Guidelines (WCAG) 2.1 AA",sniffs:[{standard:"WCAG2AAA",include:["Principle1.Guideline1_1.1_1_1","Principle1.Guideline1_2.1_2_1","Principle1.Guideline1_2.1_2_2","Principle1.Guideline1_2.1_2_4","Principle1.Guideline1_2.1_2_5","Principle1.Guideline1_3.1_3_1","Principle1.Guideline1_3.1_3_1_A","Principle1.Guideline1_3.1_3_2","Principle1.Guideline1_3.1_3_3","Principle1.Guideline1_3.1_3_4","Principle1.Guideline1_3.1_3_5","Principle1.Guideline1_4.1_4_1","Principle1.Guideline1_4.1_4_2","Principle1.Guideline1_4.1_4_3","Principle1.Guideline1_4.1_4_3_F24","Principle1.Guideline1_4.1_4_3_Contrast","Principle1.Guideline1_4.1_4_4","Principle1.Guideline1_4.1_4_5","Principle1.Guideline1_4.1_4_10","Principle1.Guideline1_4.1_4_11","Principle1.Guideline1_4.1_4_12","Principle1.Guideline1_4.1_4_13","Principle2.Guideline2_1.2_1_1","Principle2.Guideline2_1.2_1_2","Principle2.Guideline2_1.2_1_4","Principle2.Guideline2_2.2_2_1","Principle2.Guideline2_2.2_2_2","Principle2.Guideline2_3.2_3_1","Principle2.Guideline2_4.2_4_1","Principle2.Guideline2_4.2_4_2","Principle2.Guideline2_4.2_4_3","Principle2.Guideline2_4.2_4_4","Principle2.Guideline2_4.2_4_5","Principle2.Guideline2_4.2_4_6","Principle2.Guideline2_4.2_4_7","Principle2.Guideline2_5.2_5_1","Principle2.Guideline2_5.2_5_2","Principle2.Guideline2_5.2_5_3","Principle2.Guideline2_5.2_5_4","Principle3.Guideline3_1.3_1_1","Principle3.Guideline3_1.3_1_2","Principle3.Guideline3_2.3_2_1","Principle3.Guideline3_2.3_2_2","Principle3.Guideline3_2.3_2_3","Principle3.Guideline3_2.3_2_4","Principle3.Guideline3_3.3_3_1","Principle3.Guideline3_3.3_3_2","Principle3.Guideline3_3.3_3_3","Principle3.Guideline3_3.3_3_4","Principle4.Guideline4_1.4_1_2","Principle4.Guideline4_1.4_1_3"]}]},e.HTMLCS_WCAG2AAA={name:"WCAG2AAA",description:"Web Content Accessibility Guidelines (WCAG) 2.1 AAA",sniffs:["Principle1.Guideline1_1.1_1_1","Principle1.Guideline1_2.1_2_1","Principle1.Guideline1_2.1_2_2","Principle1.Guideline1_2.1_2_4","Principle1.Guideline1_2.1_2_5","Principle1.Guideline1_2.1_2_6","Principle1.Guideline1_2.1_2_7","Principle1.Guideline1_2.1_2_8","Principle1.Guideline1_2.1_2_9","Principle1.Guideline1_3.1_3_1","Principle1.Guideline1_3.1_3_1_AAA","Principle1.Guideline1_3.1_3_2","Principle1.Guideline1_3.1_3_3","Principle1.Guideline1_3.1_3_4","Principle1.Guideline1_3.1_3_5","Principle1.Guideline1_3.1_3_6","Principle1.Guideline1_4.1_4_1","Principle1.Guideline1_4.1_4_2","Principle1.Guideline1_4.1_4_3_F24","Principle1.Guideline1_4.1_4_3_Contrast","Principle1.Guideline1_4.1_4_6","Principle1.Guideline1_4.1_4_7","Principle1.Guideline1_4.1_4_8","Principle1.Guideline1_4.1_4_9","Principle1.Guideline1_4.1_4_10","Principle1.Guideline1_4.1_4_11","Principle1.Guideline1_4.1_4_12","Principle1.Guideline1_4.1_4_13","Principle2.Guideline2_1.2_1_1","Principle2.Guideline2_1.2_1_2","Principle2.Guideline2_1.2_1_4","Principle2.Guideline2_2.2_2_2","Principle2.Guideline2_2.2_2_3","Principle2.Guideline2_2.2_2_4","Principle2.Guideline2_2.2_2_5","Principle2.Guideline2_2.2_2_6","Principle2.Guideline2_3.2_3_2","Principle2.Guideline2_3.2_3_3","Principle2.Guideline2_4.2_4_1","Principle2.Guideline2_4.2_4_2","Principle2.Guideline2_4.2_4_3","Principle2.Guideline2_4.2_4_5","Principle2.Guideline2_4.2_4_6","Principle2.Guideline2_4.2_4_7","Principle2.Guideline2_4.2_4_8","Principle2.Guideline2_4.2