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
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.
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.
<del> — Insert and Delete
<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.
<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
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!
<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.
<sub>— Superscripts and Subscripts
With these two elements, you can add superscripts (like x²) and subscripts (like x₀) to your document.
<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.
<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
<dialog> — Pop-up Dialogs
<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
<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…
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. ❤️
EludaAloha, web developers! 👋
If you struggle with memorizing the whopping amount of selectors out there, know that you'r not alone.
I have a cure for this problem. It's literally free. Print it. Make it your desktop background. Or even print it on a t-shirt. It's yours forever.18:14 PM - 18 May 2022
Top comments (46)
FYI, you can use
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
Yup, good old deprecated HTML to the rescue 🤣 told you ity was more evil than just tabs and spaces!
Haha that's amazing! 💯
Worth mentioning the Warning with
Also, in general, instead of
iyou might want to use
em. The cases in which you want to make the text bold or italic but without semantic meaning are almost nonexistent.
Thanks for the feedback! 👍
I decided to remove the
<i>elements from the article as I realized their use can be quite confusing, especially for beginner programmers.
<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,
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
I haven't used area since the Geocities days.
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
Lol, I have to confess that I use
<i>quite a lot, probably just laziness, so much easier than using
<span>with a class :)
Thank you guys for the amazing feedback!
I'll be adding more elements soon ♥️
What are you talking about? I only know div and span.
me too... 🤷
i folloed u but i didnt get a free cookie 🤔😒🤦♂️
What a great list.
Tons of elements that I don't know exist has been revealed now.
Why you did not write about ?
I think this is powerful element for UI too.
I would mention the
<marquee>tag as well for this post, you may update the article with an extra sugar, if so.
Oh, sh!t. My bad..