To take a simple example, HTML was originally a pure markup language, so if you wanted to make text bold you <b>would do it like this</b>; simple, declaritive
But then it was decided that there was no semantic purpose to the <b> tag, <span style="font-weight:bold">so it became this</span>.
Now, with the ubiquity of js, it's more like
<span id="bold-text">this</span> (along with something like
getElementById("bold-text").setAttribute("style", "font-weight:bold") in the background).
It should be pointed out that things come full-circle: frameworks like Bootstrap define the <strong> tag which, via similar JS to above, all-but-duplicate the functionality of the original <b> tag. I think the OP's point though is that you have to add a JS framework to do this.
What? <strong> is a tag defined in the HTML standard (with a bold default-styling in browsers). There is absolutely no need for frameworks to do anything to it, especially not with JS.
<span style=...> vs <b> vs <strong> have different semantic meaning, and all have valid uses in modern HTML.
I think this is a bit confused? <span style="font-weight:bold">bold text</span> would be appropriate for a span of text that is to be set in bold for no semantically-relevant reason, otherwise you would use something like <strong class="important">this (please read carefully!)</strong>, and then use CSS to style the "important" class as bold. The <b> tag has actually been revived, but it is reserved for a span of text that is to be clearly set apart from its surroundings for some semantic reason unrelated to emphasis, importance or anything that's covered by other HTML tags or features.
But then it was decided that there was no semantic purpose to the <b> tag, <span style="font-weight:bold">so it became this</span>.
Now, with the ubiquity of js, it's more like <span id="bold-text">this</span> (along with something like getElementById("bold-text").setAttribute("style", "font-weight:bold") in the background).
It should be pointed out that things come full-circle: frameworks like Bootstrap define the <strong> tag which, via similar JS to above, all-but-duplicate the functionality of the original <b> tag. I think the OP's point though is that you have to add a JS framework to do this.