Menu

Semantic HTML: תגיות, מבנה עמוד ונגישות

HTML סמנטי פירושו לבחור תגיות לפי מה שהתוכן הוא, לא לפי איך שהוא נראה. למדו את תגיות הפריסה הסמנטיות (header, nav, main, article, aside, footer), מה הן נותנות לקוראי מסך ולמנועי חיפוש, ואיך לבדוק את מבנה העמוד.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

מה זה HTML סמנטי

HTML סמנטי פירושו לבחור כל תגית לפי מה שהתוכן הוא: ניווט נכנס ל-<nav>, התוכן הראשי ל-<main>, פוסט בבלוג ל-<article>. התגיות נראות כמו קופסאות פשוטות, אבל הן אומרות לדפדפן, לקוראי מסך ולמנועי חיפוש מה כל חלק בעמוד עושה. הנה עמוד שלם שבנוי מתגיות הפריסה הסמנטיות, כשכל אחת מוקפת במסגרת ומסומנת:

מחקו את האלמנט <style> והעמוד נראה כמו טקסט רגיל, אבל המבנה עדיין שם בשביל מי שקורא את הקוד, ובשביל תוכנה שקוראת אותו בלי להסתכל על הפיקסלים.

תגיות הפריסה הסמנטיות

תגיתהשתמשו בה לציון דרך בקורא מסך
<header>הפתיחה של העמוד או של article: לוגו, כותרת, שם הכותבbanner (רק כשהיא לא בתוך article, aside, main, nav או section)
<nav>בלוק של קישורי ניווט מרכזייםnavigation
<main>התוכן הייחודי לעמוד הזה, פעם אחת בעמודmain
<article>יחידה עצמאית שיש לה משמעות בפני עצמה: פוסט, תגובה, כרטיס מוצראין כברירת מחדל
<section>קבוצת תוכן נושאית עם כותרת משלהregion, רק כשיש לה שם נגיש
<aside>תוכן קשור לצד הזרימה הראשית: סרגל צד, הערהcomplementary
<footer>מידע סוגר של העמוד או של article: זכויות יוצרים, כותב, קישוריםcontentinfo (רק ברמת העמוד)

לכל תגית יש עמוד משלה עם פרטים נוספים: header, nav, section ו-footer. העמוד הזה מסביר איך הן משתלבות יחד.

למה לא פשוט להשתמש ב-div

עמוד שבנוי רק מאלמנטי <div> יכול להיראות זהה לעמוד סמנטי. ההבדל הוא במה שהקוד אומר. לחצו על הכפתורים כדי להקיף את האלמנטים שנושאים משמעות בכל גרסה:

גרסת ה-div מוצאת 0, הגרסה הסמנטית מוצאת 4. זה מה שטכנולוגיה מסייעת רואה: משתמש בקורא מסך יכול לקפוץ ישר לניווט או לתוכן הראשי בעמוד הסמנטי, ובעמוד ה-div הוא צריך לקרוא הכול. שמות classes כמו class="nav" לא אומרים לדפדפן כלום.

<div> עדיין הבחירה הנכונה לקופסאות שקיימות רק בשביל עיצוב או פריסה, כמו עטיפת ה-flex .cols בדוגמה הראשונה.

main, article ו-aside

<main> עוטף את מה שייחודי לעמוד הזה ומופיע פעם אחת. בתוכו, <article> מסמן תוכן שיהיה לו היגיון גם אם יועתק לאתר אחר לבדו, ו-<aside> מסמן תוכן קשור שאפשר להסיר בלי לשבור את ה-article:

ל-article יש <header> ו-<footer> משלו. הם לא מוגבלים לרמת העמוד: כל אחד מהם פותח או סוגר את ה-article או ה-section הקרובים אליו. האלמנט <time datetime> נותן את התאריך בצורה שמכונה יכולה לקרוא, ומציג אותו בצורה שאדם קורא.

בדקו את מבנה הכותרות

כותרות הן החצי השני של המבנה. משתמשי קוראי מסך עוברים לעיתים קרובות על עמוד כותרת אחרי כותרת, ולכן הרמות צריכות להיקרא כמו תוכן עניינים בלי רמות שדילגו עליהן. הסקריפט הזה מדפיס את מבנה הכותרות של העמוד שהוא רץ בו:

ה-h4 שמתחת ל-"Brewing" מדלג על רמה. שנו אותו ל-h3 והמבנה נקרא כמו שצריך. בחרו רמות כותרת לפי המבנה, ושנו את הגודל שלהן עם CSS אם אתם רוצים אותן גדולות או קטנות יותר.

עוד תגיות סמנטיות

סמנטיקה היא לא רק עניין של פריסה. גם לתגיות ברמת הטקסט האלה יש משמעות:

תגיתמשמעות
<strong>טקסט חשוב (מודגש כברירת מחדל)
<em>הדגשה בטון (נטוי כברירת מחדל)
<figure> ו-<figcaption>תמונה, תרשים או דוגמת קוד עם הכיתוב שלהם
<time datetime="...">תאריך או שעה בצורה שמכונה יכולה לקרוא
<address>פרטי קשר של כותב העמוד או ה-article
<mark>טקסט מסומן, כמו התאמה בחיפוש
<abbr title="...">ראשי תיבות עם הצורה המלאה שלהם
<button>משהו שמבצע פעולה

העבירו את העכבר מעל ראשי התיבות "W3C" כדי לראות את הצורה המלאה ב-tooltip.

טעויות נפוצות

  • שימוש בתגית בגלל המראה שלה. <blockquote> הוא לציטוטים, לא להזחה; <h3> הוא לרמת כותרת, לא לטקסט מודגש בגודל בינוני. עצבו עם CSS.
  • לעטוף הכול ב-<section>. ל-section צריכים להיות כותרת ונושא. אם צריך קופסה לעיצוב, השתמשו ב-<div>.
  • יותר מ-<main> גלוי אחד. השאירו אחד בעמוד, ולעולם אל תקננו אותו בתוך <article>, <aside>, <header>, <nav> או <footer>.
  • לשים כל רשימת קישורים ב-<nav>. שמרו אותו לבלוקים מרכזיים של ניווט, כמו תפריט האתר או תוכן עניינים. כמה קישורים בפוטר לא צריכים אותו.
  • אלמנטי <div> לחיצים. אי אפשר להגיע ל-<div onclick> עם המקלדת. השתמשו ב-<button> לפעולות וב-<a href> לניווט.

שאלות נפוצות

מה זה HTML סמנטי?

HTML סמנטי הוא קוד שבו כל תגית מתארת את המשמעות של התוכן שלה: <nav> לניווט, <article> ליחידה עצמאית, <button> לכפתור. כך הדפדפן, קוראי מסך ומנועי חיפוש יכולים להבין את העמוד בלי לנחש משמות של classes או מעיצוב.

מהן התגיות הסמנטיות ב-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 סמנטי עוזר ל-SEO?

הוא עוזר למנועי חיפוש להבין איזה חלק בעמוד הוא התוכן הראשי, איזה חלק הוא ניווט ואיך הכותרות קשורות זו לזו. הוא לא קיצור דרך לדירוג בפני עצמו, אבל הוא מוריד ניחושים ומשפר את הנגישות, וכדאי לעשות את זה בכל מקרה.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל