0Pricing
HTML Academy · درس

متى تستخدمون ARIA بدلًا من HTML الأصلي

اتباع القاعدة الأولى لـ ARIA: تفضيل الدلالات الأصلية

متى تستخدمون ARIA بدلًا من HTML الأصلي درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

ما ARIA؟

تُعد ARIA (Accessible Rich Internet Applications) مجموعة من السمات التي يمكن إضافتها إلى HTML لتحسين إتاحة الوصول لتقنيات المساعدة. وهي تسد الفجوات عندما لا تكون دلالات HTML الأصلية كافية.

القاعدة الأولى لـ ARIA

أهم إرشادات ARIA: لا تستخدموا ARIA إذا كان بإمكان HTML الأصلي تنفيذ ذلك:

<!-- BAD: ARIA on a div -->
<div role="button" tabindex="0" onclick="submit()">Submit</div>

<!-- GOOD: use a real button -->
<button type="submit">Submit</button>

<!-- Native HTML elements:
  - Are keyboard accessible by default
  - Have correct semantics built in
  - Work in more contexts
  - Require less code
-->

متى لا يكون HTML الأصلي كافيًا؟

تكون ARIA مطلوبة عندما:

  • لا تملك مكوّنات واجهة المستخدم المخصّصة ما يعادلها في HTML (مثل علامات التبويب وcombobox)
  • تحتاج وظيفة العنصر الأصلي إلى تجاوز
  • تحتاج تحديثات المحتوى الديناميكي إلى الإعلان عنها
  • تحتاج العلاقات المعقدة بين العناصر إلى تحديد صريح

ARIA لا تضيف السلوك

سوء فهم مهم: تضيف ARIA بيانات وصفية لإتاحة الوصول — لكنها لا تضيف الوظائف:

<!-- Adding role="button" to a div does NOT:
  - Make it keyboard-focusable (add tabindex="0")
  - Make Enter/Space activate it (add event listeners)
  - Make it styled like a button (add CSS)
-->

<!-- You must implement ALL behavior yourself -->
<!-- Native <button> handles all this for free -->

تصنيف ARIA

تضم ARIA ثلاث فئات من السمات:

  • الأدوار — تحدد ماهية العنصر: role="button"، role="dialog"
  • الخصائص — تصف السمات الثابتة: aria-label، aria-required
  • الحالات — تصف الظروف الديناميكية: aria-expanded، aria-checked

HTML الدلالي مقابل مكافئات ARIA

تملك معظم عناصر HTML أدوار ARIA ضمنية أصلًا:

<nav>   ≡  role="navigation"
<main>  ≡  role="main"
<aside> ≡  role="complementary"
<header> ≡ role="banner" (page-level)
<footer> ≡ role="contentinfo" (page-level)
<button> ≡ role="button"
<a href> ≡ role="link"
<h1-h6> ≡ role="heading"
<ul>    ≡  role="list"

الاستخدامات الصحيحة الشائعة لـ ARIA

أمثلة على الاستخدام المشروع لـ ARIA:

<!-- 1. Custom dropdown (no native equivalent): -->
<div role="combobox" aria-expanded="false">...</div>

<!-- 2. Loading state announcement: -->
<div role="status" aria-live="polite">Loading results...</div>

<!-- 3. Override landmark label: -->
<nav aria-label="Primary navigation">...</nav>

<!-- 4. Associate error with input: -->
<input aria-describedby="error-msg">
<span id="error-msg" role="alert">Invalid email</span>

الاستخدام غير الصحيح لـ ARIA

أخطاء ARIA الشائعة:

<!-- BAD: ARIA role contradicts the element -->
<h2 role="button">Heading</h2>  <!-- don't turn a heading into a button -->

<!-- BAD: ARIA on an unsupported element -->
<div role="listitem">Item</div>  <!-- listitem must be inside list role -->

<!-- BAD: ARIA where HTML works fine -->
<p role="paragraph">Text</p>  <!-- p already has paragraph semantics -->

<!-- BAD: aria-label on hidden element -->
<span aria-hidden="true" aria-label="something">  <!-- contradictory -->

أدوار معالم الصفحة

تساعد أدوار معالم ARIA مستخدمي قارئات الشاشة على التنقّل بين مناطق الصفحة:

<div role="banner">     <!-- header for the whole page -->
<div role="navigation">  <!-- major navigation -->
<div role="main">        <!-- main content -->
<div role="complementary"> <!-- aside content -->
<div role="contentinfo"> <!-- page footer -->
<div role="search">      <!-- search form -->
<div role="form">        <!-- form with label -->

<!-- These are ONLY needed if using divs instead of semantic elements -->
<!-- Prefer the native HTML elements instead -->

اختبار تطبيق ARIA

كيفية التحقق من صحة ARIA:

  • استخدموا لوحة Accessibility في أدوات مطوّري Chrome/Firefox
  • استمعوا باستخدام VoiceOver (Mac) أو NVDA (Windows)
  • شغّلوا إضافة axe DevTools
  • تحققوا من شجرة إتاحة الوصول — هل تعكس ما تتوقعونه؟

مشكلة aria-hidden الشائعة

خطأ شائع في aria-hidden:

<!-- BAD: aria-hidden on element that still receives focus -->
<button aria-hidden="true">Close</button>
<!-- The button is still focusable but invisible to screen readers
     Screen reader users reach it via Tab but hear nothing -->

<!-- GOOD: for focus + hide, use hidden attribute or display:none: -->
<button hidden>Close</button>  <!-- removes from both tab order and AT -->

<!-- Or: if you must keep visible: -->
<button style="display:none" aria-hidden="true">Close</button>

تحقق سريع

ماذا يمنحكم تلقائيًا إضافة role="button" إلى div؟

مراجعة: ARIA مقابل HTML الأصلي

أساسيات ARIA:

  • القاعدة الأولى: استخدموا HTML الأصلي متى أمكن
  • تضيف ARIA الدلالات فقط — ويجب أن تنفّذوا السلوك بأنفسكم
  • الفئات الثلاث: الأدوار والخصائص والحالات
  • تساعد أدوار المعالم على تنقّل مستخدمي قارئات الشاشة
  • اختبروا باستخدام لوحة Accessibility في أدوات المطوّرين وقارئ شاشة

الأسئلة الشائعة

هل درس «متى تستخدمون ARIA بدلًا من HTML الأصلي» مجاني؟

نعم — نص درس «متى تستخدمون ARIA بدلًا من HTML الأصلي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «متى تستخدمون ARIA بدلًا من HTML الأصلي»؟

اتباع القاعدة الأولى لـ ARIA: تفضيل الدلالات الأصلية تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «متى تستخدمون ARIA بدلًا من HTML الأصلي»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. متى تستخدمون ARIA بدلًا من HTML الأصلي
  2. role وbutton وalert وdialog وlandmark
  3. aria-label وaria-labelledby وaria-describedby
  4. aria-hidden وaria-live
← العودة إلى HTML Academy