https://github.com/dinanathsj29/html5-semantic-tags
An introduction to new latest meaningful HTML5 semantic tags like HEADER, SECTION, FOOTER, ARTICLE, ASIDE, NAV, and accessibility WAI-ARIA
https://github.com/dinanathsj29/html5-semantic-tags
article aside div footer header html-tag html5-semantic-structure html5-semantic-tags html5-tutorial nav search-engine section semantic-elements wai-aria
Last synced: 7 months ago
JSON representation
An introduction to new latest meaningful HTML5 semantic tags like HEADER, SECTION, FOOTER, ARTICLE, ASIDE, NAV, and accessibility WAI-ARIA
- Host: GitHub
- URL: https://github.com/dinanathsj29/html5-semantic-tags
- Owner: dinanathsj29
- Created: 2019-05-06T03:07:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-06T03:08:22.000Z (over 6 years ago)
- Last Synced: 2025-01-25T14:11:22.718Z (9 months ago)
- Topics: article, aside, div, footer, header, html-tag, html5-semantic-structure, html5-semantic-tags, html5-tutorial, nav, search-engine, section, semantic-elements, wai-aria
- Homepage:
- Size: 3.91 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Section 1. Structuring Content with HTML5 Semantic tags
=====================
1.1. Structure
---------------------
- HTML allows us to structure the document as per the meaning of the content
- Div, Table tags are used to create structure, layout but its not semantic
- HTML Semantic Tags - Structure of the webpage to show meaning, not just layout
- HTML Semantic Structural/Sectioning Elements helps to create pages more readable, accessible, better search engine results-oriented, easy to modify/update
- A semantic element clearly describes its meaning to both the browser and the developer
> **Note**: HTML5 semantic elements are supported in all modern browsers.#### HTML Heading Sectioning Elements
h1 to h6
#### HTML5 Semantic Structural/Sectioning Elements| Tag | Use |
| ----------------- |-----------------------------------------------------|
| `` | Specifies the main content of a document |
| `` | Specifies a header for a document or section |
| `` | Defines navigation links |
| `` | Defines a section in a document |
| `` | Defines an article. |
| `` | Defines content aside from the page content |
| `` | Defines a footer for a document or section |#### Why HTML5 Semantic Structural/Sectioning Elements introduced?
- Earlier with HTML, developers used/created their own id/class names to style elements like header, footer, top nav, bottom nav, main menu, nav - navigation, main left right top bottom container, content, left article, right sidebar, etc.
- This made it difficult and impossible for search engines to identify the correct web page content also a developer to the browser and edit content
- With the new HTML5 semantic/meaningful elements like (` `), this will become easier
- HTML5 semantic/meaningful elements make pages more readable for machines as well users with accessibility, search engine results, more consistent and easier to use and style
- > According to the W3C, a Semantic Web: "Allows data to be shared and reused across applications, enterprises, and communities"#### Implementing structural hierarchy
It's really up to you what exactly the elements involved represent, as long as the hierarchy makes sense. You just need to bear in mind a few best practices as you create such structures:
- Preferably you should just `use a singleper page` — this is the top level heading, and all others sit below this in the hierarchy
- Make sure you use the headings in the correct order in the hierarchy. Don't use `s` to represent subheadings, followed by `
s` to represent sub-subheadings — that doesn't make sense and will lead to weird results
#### Why do we need structure?
- Users looking at a web page tend to scan quickly to find relevant content. If they can't see anything useful within a few seconds, they'll likely get frustrated and go somewhere else.
- Search engines indexing your page consider the contents of headings as important keywords for influencing the page's search rankings. Without headings, your page will perform poorly in terms of `SEO (Search Engine Optimization)`
- Visually impaired people often don't read web pages; they listen to them instead. If headings are not available, they will be forced to listen to the whole document read out loud1.2. Outlines
---------------------
- HTML uses Semantic Elements, Headings, Semantic Tags to generate/describe the Document Outline of page content (Document Outline = Topics, Table of Contents, Index)
- Document Outline is used by devices/browsers to scan & search content, navigate to a particular/specific section, also to determine how contents relate to each other
- HTML5 Outliner is used to understand & know the exact outline ie page structure of HTML page/document
- Use outliner utility: https://gsnedders.html1.org/outliner/
- Text Editor like Brackets uses a `Document Outliner Plugin/extension` to show proper document outline/table of contents/topics/Indexing of page
- Brackets -> View menu -> Show Document Outline1.3. Nav
---------------------
- Represents a section of the document intended for navigation
- The element defines a set of navigation links
- The HTML element represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents
- Common examples of navigation sections are menus, tables of contents, and indexes
> **Note**: It's NOT a rule that all links of a document should be inside an element The element is intended only for a major block of navigation links1.4. Section
---------------------
- Represents a generic document or application section
- The element defines a section in a document
- The HTML element represents a standalone section
- > According to W3C's HTML5 documentation: "A section is a thematic grouping of content, typically with a heading"
- A web page could normally be split into sections for introduction, content, the middle section with left and right sections, etc.1.5. Article
---------------------
- Represents an independent piece of content of a document, such as a blog entry or newspaper article
- The element specifies independent, self-contained content
- The HTML element represents a self-contained composition in a document
- The HTML tag is used in a blog/forum post, newspaper article, blog entry etc.1.6. Aside
---------------------
- Represents a piece of content that is only slightly related to the rest of the page
- The element defines some content aside from the content it is placed in (like a sidebar)
- Asides are frequently presented as sidebars or call-out boxes1.7. Header
---------------------
- Represents a group of introductory or navigational aids
- The element specifies a header for a document or section
- The element should be used as a container for introductory content
- The HTML element represents introductory content, typically a group of introductory or navigational aids
- It may contain some heading elements but also a logo, a search form, an author name, and other elements
- You may have several elements in one document1.8. Footer
---------------------
- Represents a footer for a section
- The element specifies a footer for a document or section
- The HTML element represents a footer for its nearest sectioning content or sectioning root element
- A footer typically contains information about the author of the section, copyright data or links to related documents
- You may have several elements in one document1.9. Div
---------------------
- The div tag is known as `Division, Divider tag`
- The HTML Content Division element () is the generic container for flow content
- Prior to HTML5 Semantic Tags, the Div tag is used in HTML to make divisions of content in the web page like (text, images, header, footer, navigation bar, etc)
- Thetag is an empty container tag, which defines a division or a section by specifying child elements
- With HTML5 Semantic Tags, Div a powerful tag also used for structuring, dividing, Layout, Sectioning page/content with CSS or manipulated with scripts
- Thetag is a block-level element, so a line break is placed before and after it
- The Div is the most usable tag in web development because it helps us to separate out data in the web page and we can create a particular section
- It is used to the group of various tags of HTML so that sections can be created and style can be applied to them1.10. WAI-ARIA
---------------------
- Web Accessibility Initiative-Accessible Rich Internet Application
- It is a set of attributes to help enhance the semantics of a web site or web application to help assistive technologies, such as screen readers for the blind, make sense of certain things that are not native to HTML
- ARIA (WAI-ARIA) is a set of attributes that you can add to HTML elements. These attributes communicate role, state, and property semantics to assistive technologies via the accessibility APIs implemented in browsers
- ARIA (WAI-ARIA) provides the user with a good way to navigate and interact with your site. Make your HTML code as semantic as possible, so that the code is easy to understand for visitors and screen readers
- WAI-ARIA is an incredibly powerful technology that allows developers to easily describe the purpose, state and other functionality of visually rich user interfaces
- **Landmark Roles (Screen Readers and other devices scan and jump to the required role)**
```
-
-
-
-
-
-
-
```1.11. Websites / Blogs
---------------------
- https://www.w3schools.com/html/html_accessibility.asp
- https://www.w3.org/WAI/standards-guidelines/aria/
- https://www.w3.org/TR/wai-aria/
- https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/