בשביל מה התגית section
<section> מקבץ תוכן בנושא אחד, ומתחיל בכותרת שנותנת שם לנושא הזה. עמוד נחיתה שמחולק ל-"Features", ל-"Pricing" ול-"FAQ" הוא מקרה קלאסי:
כל section הוא פרק בעמוד, וכל כותרת היא שורה בתוכן העניינים של העמוד. כמו התגיות הסמנטיות האחרות, ל-<section> אין עיצוב ברירת מחדל; המסגרות מגיעות מה-CSS.
section מול article מול div
שלושתם נראים אותו דבר על המסך. מה ששונה הוא מה שהם אומרים על התוכן:
| אלמנט | משמעות | מבחן |
|---|---|---|
<article> | יחידה שלמה שעומדת בפני עצמה | האם יהיה לה היגיון אם תפורסם לבד, באתר אחר או בפיד? |
<section> | חלק נושאי מתוך שלם גדול יותר | האם יש לו (או צריכה להיות לו) כותרת, והאם הוא פרק אחד של משהו? |
<div> | כלום: קופסה לעיצוב או לפריסה | האם הוא שם רק בשביל CSS או JavaScript? |
פוסטים בבלוג, תגובות בפורום, כתבות חדשות וכרטיסי מוצר הם articles. "Features", "Chapter 2" ו-"Related products" הם sections. שורת flex שמיישרת שלושה כרטיסים היא div.
articles בתוך section
השניים מקוננים לשני הכיוונים. כאן section בשם "Latest posts" מכיל כמה articles עצמאיים:
שימו לב ל-<div class="grid">: הוא קיים רק כדי לסדר את הכרטיסים בשורה, ולכן div היא התגית הנכונה בשבילו. כל כרטיס הוא article כי כל פוסט עומד בפני עצמו.
sections בתוך article
article ארוך אפשר לחלק ל-sections, בדיוק כמו פרקים בספר. רמות הכותרות ממשיכות מהכותרת של ה-article עצמו:
התיבה הכחולה היא ה-article (המדריך כולו), והפסים הירוקים הם ה-sections שלו. תנו ל-section רמת כותרת משלו: article עם h2 מכיל sections עם h3.
sections עם שם הופכים לציוני דרך
קוראי מסך מציגים אלמנטים מסוימים כציוני דרך (landmarks) שמשתמשים יכולים לקפוץ ביניהם. <section> הופך לציון דרך מסוג region רק כשיש לו שם נגיש. הפנו את aria-labelledby לכותרת שלו:
<section aria-labelledby="pricing-title">
<h2 id="pricing-title">Pricing</h2>
...
</section>
עשו זאת לכמה sections שמשתמש ירצה לקפוץ אליהם ישירות, לא לכל section: עמוד עם עשרים ציוני דרך קשה לסריקה בדיוק כמו עמוד בלי אף אחד. גם sections בלי שם עוזרים, כי הכותרות שלהם מופיעות ברשימת הכותרות של קורא המסך.
sections הם גם יעדים טובים לקישורים בתוך העמוד. תנו לאחד מהם id וקישור עם href="#id" יקפוץ אליו:
טעויות נפוצות
- שימוש ב-
<section>כעטיפה לעיצוב. אם אין כותרת ואין נושא, השתמשו ב-<div>. העמוד על HTML סמנטי מראה איפה כל תגית פריסה מתאימה. - עטיפת פוסט בודד בבלוג ב-
<section>. פוסט שעומד בפני עצמו הוא<article>. - sections בלי כותרות. הוסיפו כותרת, אפילו מוסתרת חזותית, או חשבו שוב אם זה באמת section.
- החלפת
<main>ב-<section>. התוכן העיקרי של העמוד נכנס ל-<main>; ה-sections נכנסים לתוכו. - לתת שם לכל section. הוסיפו
aria-labelledbyרק לחשובים, כדי שרשימת ציוני הדרך תישאר קצרה.
שאלות נפוצות
מהי התגית section ב-HTML?
<section> מקבץ תוכן ששייך לנושא אחד, כמו פרק במסמך או החלק "Pricing" בעמוד נחיתה. בדרך כלל הוא צריך להתחיל בכותרת שאומרת על מה החלק.
מה ההבדל בין section ל-div?
<section> אומר שהתוכן הוא חלק נושאי במסמך עם כותרת משלו. <div> לא אומר כלום; הוא קופסה לעיצוב או לפריסה. אם צריך רק עטיפה בשביל CSS, השתמשו ב-<div>.
מה ההבדל בין section ל-article?
<article> הוא תוכן שיש לו משמעות בפני עצמו, מחוץ לעמוד: פוסט בבלוג, תגובה, כרטיס מוצר. <section> הוא חלק ממשהו גדול יותר שיש לו משמעות רק בהקשר שלו. שאלו אם אפשר לפרסם את החלק לבדו: אם כן, זה article.
האם article יכול להכיל sections, ו-section יכול להכיל articles?
כן, שניהם. article ארוך אפשר לחלק ל-sections, ו-section כמו "Latest posts" יכול להכיל רשימה של articles.
האם section צריך כותרת?
כמעט תמיד כדאי שתהיה לו, כי הכותרת היא מה שנותן שם לנושא. אם אין לכם רעיון לכותרת בשבילו, כנראה שהתוכן אינו section ו-<div> מתאים יותר.