ما هو HTML الدلالي
HTML الدلالي يعني اختيار كل وسم بحسب ما هو المحتوى: التنقل يوضع في <nav>، والمحتوى الرئيسي في <main>، والتدوينة في <article>. تبدو الوسوم كصناديق عادية، لكنها تخبر المتصفح وقارئات الشاشة ومحركات البحث بوظيفة كل جزء من الصفحة. هذه صفحة كاملة مبنية من وسوم التخطيط الدلالية، وكل وسم فيها محاط بإطار ومعنون:
احذف العنصر <style> وستبدو الصفحة كنص عادي، لكن البنية تبقى موجودة لمن يقرأ الشيفرة، وللبرمجيات التي تقرؤها من دون النظر إلى البكسلات.
وسوم التخطيط الدلالية
| الوسم | استخدمه لـ | معلم قارئ الشاشة |
|---|---|---|
<header> | مقدمة الصفحة أو المقال: الشعار، العنوان، اسم الكاتب | banner (فقط حين لا يكون داخل article أو aside أو main أو nav أو section) |
<nav> | مجموعة روابط تنقل رئيسية | navigation |
<main> | المحتوى الخاص بهذه الصفحة، مرة واحدة في الصفحة | main |
<article> | قطعة مستقلة لها معنى بذاتها: تدوينة، تعليق، بطاقة منتج | لا شيء افتراضيًا |
<section> | مجموعة محتوى ذات موضوع وعنوان خاص بها | region، فقط حين يكون لها اسم قابل للوصول |
<aside> | محتوى مرتبط بجانب التسلسل الرئيسي: شريط جانبي، ملاحظة | complementary |
<footer> | معلومات ختام الصفحة أو المقال: حقوق النشر، الكاتب، الروابط | contentinfo (على مستوى الصفحة فقط) |
لكل وسم صفحته الخاصة بتفاصيل أكثر: header وnav وsection وfooter. هذه الصفحة تشرح كيف تتكامل معًا.
لماذا لا نكتفي بـ div
الصفحة المبنية من عناصر <div> وحدها يمكن أن تبدو مطابقة للصفحة الدلالية. الفرق فيما تقوله الشيفرة. اضغط الأزرار لتحيط بإطار العناصر التي تحمل معنى في كل نسخة:
نسخة div تجد 0، والنسخة الدلالية تجد 4. هذا ما تراه التقنيات المساعدة: مستخدم قارئ الشاشة يستطيع القفز مباشرة إلى التنقل أو المحتوى الرئيسي في الصفحة الدلالية، وعليه أن يقرأ كل شيء في صفحة div. أسماء الفئات مثل class="nav" لا تعني شيئًا للمتصفح.
يبقى <div> الخيار الصحيح للصناديق الموجودة للتنسيق أو التخطيط فقط، مثل غلاف flex .cols في المثال الأول.
main وarticle وaside
<main> يحيط بما هو خاص بهذه الصفحة ويظهر مرة واحدة. وبداخله يحدد <article> المحتوى الذي يبقى له معنى لو نُسخ وحده إلى موقع آخر، و<aside> يحدد محتوى مرتبطًا يمكن حذفه من دون إفساد المقال:
للمقال <header> و<footer> خاصان به. فهما لا يقتصران على مستوى الصفحة: كل منهما يقدّم أو يختم أقرب مقال أو قسم إليه. والعنصر <time datetime> يعطي التاريخ بصيغة تقرؤها الآلة بينما يعرضه بصيغة يقرؤها الإنسان.
افحص مخطط عناوينك
العناوين هي النصف الآخر من البنية. مستخدمو قارئات الشاشة يتنقلون غالبًا في الصفحة من عنوان إلى عنوان، لذلك يجب أن تُقرأ المستويات كفهرس محتويات بلا مستويات متخطاة. هذا السكربت يطبع مخطط الصفحة التي يعمل فيها:
العنوان h4 تحت «Brewing» يتخطى مستوى. غيّره إلى h3 وسيُقرأ المخطط بشكل سليم. اختر مستويات العناوين بحسب البنية، وغيّر حجمها بـ CSS إن أردتها أكبر أو أصغر.
وسوم دلالية أخرى
الدلالة لا تخص التخطيط وحده. وسوم النص هذه تحمل معنى أيضًا:
| الوسم | المعنى |
|---|---|
<strong> | نص مهم (عريض افتراضيًا) |
<em> | تأكيد بالنبرة (مائل افتراضيًا) |
<figure> و<figcaption> | صورة أو مخطط أو عينة شيفرة مع تعليقها |
<time datetime="..."> | تاريخ أو وقت بصيغة تقرؤها الآلة |
<address> | بيانات الاتصال بكاتب الصفحة أو المقال |
<mark> | نص مظلل، مثل نتيجة بحث مطابقة |
<abbr title="..."> | اختصار مع صيغته الكاملة |
<button> | شيء ينفّذ إجراءً |
مرّر المؤشر فوق الاختصار «W3C» لترى صيغته الكاملة في تلميح.
أخطاء شائعة
- استخدام وسم بسبب مظهره.
<blockquote>للاقتباسات لا للإزاحة، و<h3>لمستوى عنوان لا لنص عريض متوسط الحجم. نسّق بـ CSS. - إحاطة كل شيء بـ
<section>. يجب أن يكون للقسم عنوان وموضوع. إن كنت تحتاج صندوقًا للتنسيق، فاستخدم<div>. - أكثر من
<main>ظاهر. أبقِ واحدًا في كل صفحة، ولا تضعه أبدًا داخل<article>أو<aside>أو<header>أو<nav>أو<footer>. - وضع كل قائمة روابط في
<nav>. احتفظ به لمجموعات التنقل الرئيسية، مثل قائمة الموقع أو فهرس المحتويات. بضعة روابط في التذييل لا تحتاج إليه. - عناصر
<div>قابلة للنقر. لا يمكن الوصول إلى<div onclick>بلوحة المفاتيح. استخدم<button>للإجراءات و<a href>للتنقل.
الأسئلة الشائعة
ما هو HTML الدلالي؟
HTML الدلالي بنية يصف فيها كل وسم معنى محتواه: <nav> للتنقل، و<article> لقطعة مستقلة بذاتها، و<button> للزر. عندها يستطيع المتصفح وقارئات الشاشة ومحركات البحث فهم الصفحة من دون التخمين من أسماء الفئات أو التنسيقات.
ما هي الوسوم الدلالية في HTML؟
وسوم التخطيط هي <header> و<nav> و<main> و<article> و<section> و<aside> و<footer>. ومن الوسوم الدلالية الشائعة الأخرى <figure> و<figcaption> و<time> و<address> و<strong> و<em> والعناوين من <h1> إلى <h6>.
هل div عنصر دلالي؟
لا. <div> بلا معنى خاص به، فهو صندوق عام للتنسيق والتخطيط. استخدمه حين لا يناسب أي وسم دلالي، واستخدم <header> و<main> و<nav> وغيرها حين يناسب أحدها.
ما فائدة وسم aside؟
<aside> يحتوي على محتوى مرتبط بالمحتوى الرئيسي لكنه ليس جزءًا من تسلسله: شريط جانبي، صندوق روابط ذات صلة، ملاحظة مصطلحات أو اقتباس بارز. وعلى مستوى الصفحة تسرده قارئات الشاشة كمعلم تكميلي (complementary).
كم عنصر main يمكن أن يكون في الصفحة؟
<main> ظاهر واحد لكل صفحة. يحيط بالمحتوى الخاص بتلك الصفحة، ويجب ألا يقع داخل <header> أو <nav> أو <article> أو <aside> أو <footer>.
هل يساعد HTML الدلالي في تحسين محركات البحث؟
يساعد محركات البحث على فهم أي جزء من الصفحة هو المحتوى الرئيسي، وأيها التنقل، وكيف ترتبط العناوين. ليس طريقًا مختصرًا للترتيب بذاته، لكنه يزيل التخمين ويحسّن إمكانية الوصول، وهذا يستحق الجهد على أي حال.