There are over a hundred elements in HTML, all of which can be applied to pieces of text to give them special meaning in a document. Most of us only know a few, like the <p>
, <div>
, and <body>
elementsβ¦
But there are actually a bunch more hidden in the dark realms of the W3C reference. Thatβs why, in this article, I took the liberty of diving deep into the HTML documentation, to come out with a handy bag of elements that will improve your website in not one, but two very important ways: accessibility and SEO.
Press Ctrl
+D
to bookmark this article and easily come back to it when you need it. And with that said, letβs begin!
π <abbr>
β Abbreviation
This elements represents both abbreviations (like Corporation β Corp.) and acronyms (like Cascading Style Sheets β CSS). Additionally, you can use its title
attribute to write the full form of the word so that screen readers can read it and users can hover over it to read it.
π <ins>
and <del>
β Insert and Delete
The <ins>
and <del>
elements represent a range of text that has been added or deleted to a document. You may have already seen these elements in the Github Pull Requests.
π <dfn>
, <var>
, <kbd>
, <samp>
, and <output>
β Technical Elements
These are elements that represent special technically-oriented parts in a document, like definitions, variables, keystrokes, etcβ¦
π <bdo>
β Text Directionality
This element changes the directionality of text to make it render backwards. You can control its behavior using the dir
attribute.
Although not its intended use, but it can reverse text using nothing but HTML!
π <mark>
β Highlighting Text
The purpose of this element is to highlight text like you would with a marker.
π <area>
β Clickable Image Areas
You can use this element to make certain areas of your image behave like links!
π <dl>
, <dd>
, and <dt>
β Description Lists
You can use these elements to create a semantically-accurate description list where you define multiple terms in one block of text.
π <sup>
and <sub>
β Superscripts and Subscripts
With these two elements, you can add superscripts (like xΒ²) and subscripts (like xβ) to your document.
π <figure>
and <figcaption>
β Labeled Images
You can use <figure>
to contain any element that you want, like an image for example. And then, you add <figcaption>
as its last child, where you can add a block of text that describes whatβs above it.
π <progress>
and <meter>
β Marking Progress
This one allows you to create semantically-right progress-bar elements where you show how far an action is from being finished.
π <details>
β Expandable Menus
You can use this element to create a native menu that has a title and can expand using a button. No JavaScript needed.
π <dialog>
β Pop-up Dialogs
Itβs possible to create semantically-accurate dialogs using this element. It doesnβt do much by itself, so you have to use CSS and JavaScript to add more functionality.
π <datalist>
β Text Input Suggestions
This element lets you manually add text-input suggestions. You can add anything you want!
π <fieldset>
β Grouping Form Elements
Keep your forms tidy and more user-friendly by using the <fieldset>
element.
π <object>
β Embedding External Objects
With this amazing element, you can embed almost any file you want to your website! The most commonly supported files are PDFs, Youtube videos, etcβ¦
π <noscript>
β If JavaScript Is Disabled
This element can be used to show some content when JavaScript is disabled by the browser. Itβs very commonly used by websites that heavily depend on JavaScript, like Single Page Applications (SPAs).
If you found this guide useful, please donβt forget to bookmark it for future reference.
I make posts like this everyday, so please follow me to stay informed. β€οΈ
[Deleted User]
Top comments (45)
FYI, you can use
abbr
within DEV/Forem.Actually, several of these are valid β Like β.
We wouldn't expect everyone to reach for these all the time, but they're there if you really want to make your post highly usable!
Β
Β
Β
can centre things without CSS π
Β
Β
Β
Β
using tab and space πright?
I am not skilled enough to do it that way, plus I think they are ignored in markdown at the beginning of lines or get turned into code snippets. The answer is even more evil than spaces and tabs I am afraid! π€£
Let me guess.. Are you using the
<center>
tag?Yup, good old deprecated HTML to the rescue π€£ told you ity was more evil than just tabs and spaces!
Haha that's amazing! π―
<base>
is also another nifty little tag that we can use to specify the base urls for all the anchor tags after it. For example we can add the base tag with a url at the top of our webpage and do something like this,I haven't used area since the Geocities days.
Lol, I have to confess that I use
<b>
and<i>
quite a lot, probably just laziness, so much easier than using<span>
with a class :)I know all of them cuz at the time I was learning html I used to go to html reference and see what each one does.
I remember the time when I was trying to create a working keyboard with just image of a keyboard using the
<area>
tags.Consider preferring strong & em instead of b(old) & i(talic) html elements.
You'll get a nicer SEO.
And i'm rather sure that the underline thing is deprecated :p
Pretty great article still, I've learned a couple new elements ;)
Thanks for the suggestions! π I removed the
<b>
and<i>
elements.Thanks for the feedback! π
I decided to remove the
<u>
,<s>
,<b>
and<i>
elements from the article as I realized their use can be quite confusing, especially for beginner programmers.Thank you guys for the amazing feedback!
I'll be adding more elements soon β₯οΈ
Nice work
Why you did not write about ?
I think this is powerful element for UI too.