HTML5 introduced custom data attributes for storing extra information on HTML elements that aren't suitable for any
existing attributes. They can be particularly useful because you can embed custom data attributes directly onto HTML
elements, without having to set up a database or other storage solution. They are written as `data-*`, where * is
replaced by the name of your choosing. This data can then be accessed and manipulated via JavaScript. For instance:
<div data-user="Nasir Watts" data-info="active user">...</div>
You could then access these attributes in JavaScript with
`element.dataset.user` or `element.dataset.info`.
HTML5 introduces several new elements and attributes designed to enhance the accessibility of web content. It includes
new semantic elements such as `<header>`, `<footer>`, `<article>`, `<section>`, and others that help to indicate what type of
content is contained within them, making it easier for screen readers and other assistive technologies to
interpret the page structure. HTML5 also provides the aria-* attributes, which allow for more detailed
descriptions of elements and their roles, states, and properties, enhancing the information available to
assistive technologies.
The `<!DOCTYPE html>` declaration is important because it instructs the web browser about the HTML version of the web page.
This helps ensure that the browser renders the page in standards mode, which supports the latest HTML specifications.
Without this declaration, the page may be rendered in quirks mode, which emulates behavior from older browsers for
compatibility.
This can cause inconsistencies and potentially make newer HTML and CSS features unavailable. It's
important to note that the DOCTYPE declaration is not a regular HTML tag; it's a kind of system instruction.