(edit: Multiple people have interpreted this comment in a way which makes them think I'm complaining about the semantics and one even seems to think I am "advocating for" using the wrong semantic... I am merely complaining about the chosen tag name and how much longer the much-later-added tag we all are supposed to use is than the tag which is in some sense--not technically, but morally--deprecated, as it undermines being able to use HTML as a true markup rather than a rendering target. If you find yourself thinking I'm against using <strong> and are somehow pro-<b>, maybe re-read the comment or go read some of my other much-longer explanations I've been <strong>-armed ;P into providing down-thread. FWIW, I do at least see how my comment was a bit confusing.)
Doing this reminded me how angry I am that I am supposed to use "<strong>...</strong>" instead of "<b>...</b>". The verbosity overhead in a normal document of markup littered with five-character tags for something as basic as a keyword is sufficiently worse than one-character tags that it drives me to want to use something like Markdown (but then I am angered that it went with *...* and **...** instead of /.../ and *...* and I just start to give up on other peoples' tooling entirely).
Oh, one quick note about your markdown from someone stupid enough to have tried to write his own markdown flavor: those slashes are a nightmare for handling urls/paths. Trying to programmatically distinguish between "my/path to/some/ridiculous folder/and/s/y/m/bol/s" and "/i want this italic/ but not this. and sometimes o/nl/y some letters in a word." was all too much for me. I quickly retreated from using slashes at all in the markdown design. But there are definitely better programmers than me with much better designs for text parsing, so don't let me imply it's impossible (or even that hard! I honestly don't know!). I was just reminded of the anecdote and thought I'd share.
That used to be the advice, but the W3C eventually agreed with you. The spec describes <b> as "a span of text to which attention is being drawn" (https://html.spec.whatwg.org/multipage/text-level-semantics....) and no longer mentions boldface as what the tag "means", it's just how it's usually styled by default & convention.
Huh... the documentation there for i is actually even more interesting to me: it seems like I'm actually actively "not supposed to be" (at least anymore, if ever) using em for almost every reason I've ever used it?!
"bold" is a style, and perfectly fine to use for any word that you want to apply that style to.
"strong" is an intention and allows other things to define what style(s) that intention should be represented with.
It's not often that you want to represent something as a "bold" style without representing it as having strong emphasis, but there are times. A header is a good example of a place where you might want the header to be styled bold, but strongly emphasize a single word in the header. Since <header> doesn't apply the styles that - say - h1 does, it would be perfectly reasonable to script your header as
```
<header><b>The <strong>Worst</strong> Case Scenario</b></header>
```
... especially if you didn't want all of your headers to have a bold style applied.
Obviously there are a few other edge cases but I will admit that the vast majority of the times would naturally call for a strong tag, over a bold tag. And for those majority cases, I'm really glad that it's "strong" rather than bold, because "strong" is meaningful in different ways than "bold" and it always makes more sense, to me, reading it back as html telling me how I should interpret the word, rather than just how it should look.
I am not complaining that it is "strong" instead of "bold" or that we have two separate tags, and I'd be perfectly happy if bold had never existed: certainly, if I actually wanted to use <b>, it isn't like anyone removed it from either the browser or the HTML standard... it is, in fact, that I agree with everything you wrote about the semantics of the situation which is why I even have a reason to be angry when I'm trying to read my hand-written markup.
Instead, I am complaining that we got to allocate a one-character tag to bold and then when we realized that we screwed that up we allocated a FIVE-character tag to strong. Hell: we hadn't even run out of one-character tags!! Why not <e>...</e> and <s>...</s>?! If you really think we needed to preserve the one-character tags, that we were given a two-character abbreviation for <em> but are forced to use a five-character word for <strong> is just insulting :(.
<s>...</s> already exists and is the "text-decoration: line-through"
tag.
Incidentally, there's also "strike" and "del", which look the same in
my UA style sheet. I think strike was "deprecated" at some point,
but I probably added it because websites still use it.
I spent a while trying to do all the semantic markup properly on my blog -- <em>, <i>, <dfn>, <cite>, <mark>, <strong>, <b>, etc. I eventually gave up and just used <i> and <b> everywhere. It was such a waste of energy reading MDN docs and trying to decide between tags when they render identically and 99.9% of users aren't going to view the source. I also encountered bugs like <cite> breaking Safari Reader View.
Typing a couple keys on a keyboard is a pretty weak complaint considering the unintended consequence of what you are advocating for results in discriminatory output against persons with access disabilities. This is the literal definition of narcissism, even if unintentional.
But... I am, surely, not advocating for people using <b> now: I'm merely lamenting that we allocated a one-character tag for <b> and then resorted to a five-character tag for <strong>, as it affects the readability (I couldn't care less about how many characters it is to type) of the un-rendered/hand-written document.
(Hell: it isn't even clear that I'm "advocating" for anything at all; at best it would be "don't bother with HTML/Markdown, as both ended up making poor choices for readability of your source document: instead, use a custom markup/markdown and then have code--on your server--to render it into the appropriate semantic HTML". Yet, while that is how my blog used to work, I actually failed to reallocate the tag names.)
I do, in fact, carefully use <strong> in my HTML documents (though I'm now starting to wonder if that's wrong, per the sister comment which linked us to the standard; it, surprisingly-to-me, does seem like I'm "supposed to be using" <i> in most, if not all, of the places I've been using <em>...), and I've been known to go to pretty extreme lengths to correctly support various accessibility technologies in my code, both on the web and native.
It simply makes me a bit angry, every time I see it, that someone decided to make such a common element <strong> instead of, say, <s>, which I believe is a reasonable position and has nothing to do with accessibility, as we could have named the new tag <powerful> and it would have worked the same and yet clearly that would have been even worse than <strong> ;P. We should get to separately judge--and even potentially lament one of--these two decisions.
(I'm thereby going to assert pretty directly that your decision to insult me by calling a narcissist is based on you not bothering to read what I wrote or pay attention to the actual thing I was complaining about--as I'd in fact have no reason to complain if I didn't care about the same thing you do: no one removed <b> from either the standard or the implementation--and just ran with a knee-jerk interpretation of some of the keywords I used.)
Note that times have changed, and what <b> used to be for back in the <font> and <center> days is not what it's still for. It's just a letter now, not short for "bold", with the following official definition:
> The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.
Same for <i>: that's not short for "italic" anymore, it's just a letter now, and is defined as:
> The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.
So go nuts: don't use <strong> or <em> if you semantically just needed <b> or <i>.
Doing this reminded me how angry I am that I am supposed to use "<strong>...</strong>" instead of "<b>...</b>". The verbosity overhead in a normal document of markup littered with five-character tags for something as basic as a keyword is sufficiently worse than one-character tags that it drives me to want to use something like Markdown (but then I am angered that it went with *...* and **...** instead of /.../ and *...* and I just start to give up on other peoples' tooling entirely).