In praise of the <B> tag

Yes, B and I are essentially presentational but still shouldn’t be ‘deprecated’. Completely ignore the HTML5 stuff or redefinitions; it doesn’t exist, just like fairy dust… Those two tags do have purpose but are usually misused in the majority of cases that is what I was saying.

The B element is not an instance of STRONG since it doesn’t contain stronger emphasis, STRONG is already a phrase element.

Regarding the non normative HEADER and some of the other constructs you have a valid point about them being mainly wrappers leading to some bloat but that’s off-topic.

Ijj, was being civil but talking about a different markup language redefinition and became confused by your sentence structure and grammar. So there was no need to imply (s)he was not polite as that would be getting too personal and possibly get ‘flagged’ even if meant as a jest wrapped in off-topic markup.

You wouldn’t want Paul to use his Kung fu on you.

Well, it seems I really need more work on my Engrish :rofl:

I was referring to my idea, that thread, or that forum, where users would be allowed to blow off steam, as the SPF Tourette’s syndrome. Far, far, far , far, far, …, far, far, far away from me, and a complete stranger, the intent to even make fun about a real person or use it as an insult.

And the whole idea was a fun one, like in the AFV, where this guy, having this disease, records him self and makes fun the way he sings a song sprinkled with four letter words and gestures, and has the hearth to get over his disease and possible embarrassment, sending over the tape to AFV for everybody to have a laugh on TV.

Or like in Nurse Jackie, where Dr. Fitch Cooper character grabs women from the same reason.

And let me tell you, Ijj was not being civil, otherwise…

Now, my point was being exactly that: a quote of me and a …what?: no. Some tech docs and specs: yes. Even more, another quote of me and another …what? with a little “can you even comprehend?” is not what makes a debate, but a slum pushing back and forth.

But I suppose we need to sometimes be more aggressive, and thus, I was suggesting a place where we all can get a free-out-of-prison card, acting like funny chumps, verbally blowing steam off, in a hope tech talk in the rest of threads/forums would be cleaner this way. Something like Tom… and Jerry: http://www.youtube.com/watch?v=O1dKeeOipNY, http://www.youtube.com/watch?v=GZtp8bnA_2k&NR=1.

[ot]Well, you should have flagged the posts or more preferably contacted Paul via PM about your “concerns” referring to the thread - he is a good guy and usually responds quickly.

Else if he wasn’t around one of the other green or blue guys regarding your interpretation of those abrupt single-word answers and quotes. Since to a lot of people; it did indeed look personal so keep working on the English it has improved over the last few months.[/ot]

Off Topic:

OK, Robert. Aside my Engrish struggle, I am a mild person. But I’m not the kind to report a problem, if you know what I mean :lol: I tend to go over board verbally, and that hurts the way I’m understood, tech or otherwise. But I’m learning to behave from you, from Paul, from Stomme poes, from Maleika :slight_smile: At least on SPF :wink:

One thing about b, from http://www.w3.org/TR/html401/present/graphics.html#h-15.2.1:

15.2 Fonts

The following HTML elements specify font information. Although they are not all deprecated, their use is discouraged in favor of style sheets.
15.2.1 Font style elements: the TT, I, B, BIG, SMALL, STRIKE, S, and U elements

<!ENTITY % fontstyle “TT | I | B | BIG | SMALL”>
<!ELEMENT (%fontstyle;|%phrase; ) - - (%inline; )*>

I’m reading this as: all %fontstyle were not deprecated 10ys ago, for some reason. But they should be gone by now. After all, FONT is PRESENTATION. FONT STYLE is PRESENTATION even more.

I will not go as far as to say %phrase are replacements, but surely they can provide semantics and distinct presentation, even w/o CSS.

Now, saying a %fontstyle element can provide you with neutral semantics is by far a stretch. So, using empty b simply as a hook for style it’s not semantically neutral at all, because it’s not semantic in the first place.

What about: b is an non-deprecated html presentational which I use for style. Yes, you can do that, if you were in a coma for the last 5ys at least :lol: But don’t stretch it: it’s not a hook for style when empty. It has a specific styling purpose, it’s not a “generic language/style container”. We all know who that is :slight_smile:

I think I see what surprised you now noonope. In my second post of that thread I said this:

When the <b> is empty it does not effect the semantics, it’s purpose then is a styling hook.
I can see how that could be interpreted to mean that it HAD semantic value if it were NOT empty. That was not my intention, it was just a poor choice of words on my part, sorry for any confusion.

As stated by several others here I do agree that the <b> is “essentially presentational". Stomme makes a good point though about "certain types of words that do NOT fall under presentation (such as) … book titles & names of ships[I] etc.”.

[/I]As Robert has mentioned we need to ignore any HTML5 redefinitions and focus on how the HTML4 specs define those elements. In that light the <b> and <i> leave us with the description of “Text Style”. Though it may fall under presentation I believe that Stomme’s explanation of “certain words” that need “text style” abilities when CSS is off is the very reason they are NOT deprecated.

I’ll add that the two (of noonope’s list) who WERE deprecated (strike and u) were done so because they caused confusion. Underlining is, or was, popular in text because of typewriters having an inability to type italic. On the web, though, underlining became better known as “oh, this is clickable”. So there went u.
Strike actually surprised me, seeings how it’s absolutely essential to the legal profession, but it has been replaced by a better tag: <del>. <ins> and <del> (supposedly) have much more semantic meaning than <strike> which only says “this text has a strike-through”. I say supposedly because if AT was the target, it seems no screen reader knows what those tags are, despite their advanced age : ( if <del> had not been introduced, <strike> would have probably remained to take up the slack for “this text once was valid, no longer is, but remains for the record”. That’s content meaning, not presentation.

TT, I’m not sure what that was supposed to represent (text typed in a terminal?) and I’m not sure why it hasn’t been deprecated in favour of <kbd> (representing text someone (likely the reader) types in) or <code>.

Wow… now I am more lost than ever…

  1. Yes, I know <B> has it’s own attributes… BUT it STILL semantically neutral
  2. I was referring to a specific case, the tag is within the <label> tag, but that is irrelevant to my point which is the <B> allows for a SEMANTICALLY neutral, PERSISTENT style which is sometimes handy. unless what you are saying is that logins should have a semantic value of <strong>, for example…

I have to add the following, directly in response to Stomme’s post above. A rose by any other name would still be just as semantically correct. A person who knows AND APPLIES semantics to his mark up would most likely have always used the <strike> tag correctly, it would be understood that this by convention that the text was deleted. A person hat doesn’t know or apply semantics to his mark up will eventually find the <del> tag and say “cool… this is a way to get a line through my text!!!” (the <INS> is an advantage, but I am thinking the <strike> tag could have been kept)

There is a time when underline is correct to use in typography, but again, the convention has become that underlined text is a link ( even if it’s merely the title of a published work) …ce’st la vie. Sometimes I ponder if it confuser users to make text links a color other than blue ( even if the link color is consistent through the site, after the underline attribute, users seem to look for navy blue as the sing that text is clickable)

In your case, there is no reason to use <b> in a label.

<label for=“foo”> is all you need.

label {font-weight: bold;}

Since putting a span in there and making that bold is silly (or, seems silly to me), a b tag is somewhat sillier. In my opinion. You already have a tag to style.

These tags only stayed in the spec while a bunch of other styling tags were thrown out because of specific typographic examples which the W3C did not argue against.

Correct, you are not saying anything different about the text in the label by adding a b tag, but since b tags have their specific uses, you would want to stick to those uses in your markup.

Or not. Better yet, forget about b. Its use ended up sometime last millennia.

b is counter-semantic. It never was semantically neutral, it never will be related to anything semantic: neutral or otherwise. It’s presentational, it’s font style.

It’s not about general presentation, but about specific presentation, so the use as presentational hook is out the window.

A mistake, having no place in a semantic mark-up, where the only semantically neutral elements are div and span.

TT, Teletype mono-spaced text; whereas KBD, she is a phrase command offering the user to input text such as Access key numbers <kbd>1</kbd> or other values like <kbd>ESC</kbd> or something naughty. :wink:

CODE is more specific and is phrase and can contain VAR values and actually expresses meaning whereas TT doesn’t; so generally you’d opt for a ‘phrase element’ over TT where appropriate.

Neither.

b only allows for font style at random. It’s anti-semantic, counter-semantic, non-semantic, as in not semantically neutral at all. It was never given any semantics to be taken off.

Login fields are part of other elements that will convey enough importance when used correctly. Using b heavily, at best, will upset your users. You need to focus on fieldset captions, headings, to signal an easy to spot structure, order and importance.

At worst, since you want an increased emphasis on your form elements - not something I would do in plain html - use emphasis semantic elements. Don’t ignore the default style sheet UAs have for them, it is what it is for a good reason. And don’t ignore the rest of the rules in a default style sheet.

When it comes to author CSS, go wild. Keeping the semantics. What use is b when CSS is in play? Will it make or break your page? Probably neither either, but it will make for poor html mark-up.

And according to html5 specs, trying too hard to be backwards compatible, and at the same time, trying too hard to make a change, that’s OK too. But where’s the reason in that. Knowing you can get away with poor mark-up will help you until a serious scrutiny. No philosophy will be able to give you solid knowledge you need to convince clients, fellow web dev, that you know what you’re doing.

That’s is what’s about. Understanding better. Being a better professional. But html lends a hand to hobbyists also. Which are you?

Well, to me, “certain words” means emphasis. We have semantic elements for that, doing both the job of distinct presentation and distinct content. “Certain words” means distinct content to me. We can argue, if you please, given “certain cases” :slight_smile:

I gave an example to that regard. You are free to find holes in it, or to provide examples I will try to find holes in.

<span lang="ro"><strong>Îmi place</strong> de aceast&#259; <em>pisic&#259;</em> istea&#355;&#259; (<span lang="nl"><strong>Stomme poes</strong></span>), dar uneori nu prea avem acelea&#351;i p&#259;reri!</span>

You seem to misunderstand what a <div> is…

<center> is shorthand for <div align=“center”>, which is a deprecated construct, because the align attribute is presentational but conveys no contextual information, and therefore has no place in HTML.

A <div> is a generic block-level element that conveys no contextual information about its contents but is simply used for grouping content together for the purposes of styling, scripting or internal linking.

A <header> is a block-level element with a specific purpose, which is to mark up the header area of the document, which according to the specs is “a group of introductory or navigational aids. A header element typically contains the section’s heading (an h1–h6 element or an hgroup element), but can also contain other content, such as a table of contents, a search form, or any relevant logos”.

A <header> is not ‘a kind of <div>’, in the same way that <h1> is not ‘a kind of <p>’. Yes, they are both block-level elements, but so are plenty of others. They are to be used in different situations, and they have different purposes.

One for presentation (wait, div is suppossed to be a hook for presentation, right?; so <center> somewhat fits?), but only for technical/implementation resons, and one for being attributed semantic meaning, which goes against html 4.01 and xhtml 1.0 specs, but can also be challenged for technical/implementation resons.

<div> can be used as a hook for presentation applied by CSS. Neither <center> nor align=“center” fit that bill as they don’t use CSS.

And I have no idea what the rest of that sentence means. For a start, the <header> element was only introduced in HTML5, so any discussion of how it applies to HTML4.01 or XHTML1.0 is completely nonsensical, you might as well ask why 19th century cookbooks don’t give instructions for microwaves.

But anyway, <header> is a semantic element, which is exactly what HTML has been building up all the time: elements that convey the meaning or purpose of the content within them. The vast majority of undeprecated elements in HTML4.01 do convey information about their contents, and so the addition of <header>, <nav> etc as semantic elements in HTML5 is a natural and logical development of the language.

What’s so different between div align=“center” and div top=“0” or div bottom=“0” ? (What about div align=“top” or div align=“bottom” ?

There’s no difference in principle between <div align=“center”> and <div top=“0”>, except that the latter has never been a recognised part of any spec. All those examples you gave are either deprecated (as they are presentational) or have never been part of any spec (but would have been deprecated by now if they had ever appeared).

Which is worst? I vote for html5 specs which imposes instances of the semantic-less div as semantic, and by doing so, creates two opposing and competing standards for the div, that are to be used for at least a decade from now on.

What? There are no opposing or competing standards for the <div>. HTML5 is entirely consistent in adding semantically meaningful elements such as <header> and <nav> while continuing to ignore semantically neutral presentational elements such as <center> or attributes such as align.

I won’t disagree that there some aspects of paving the cow paths that I think are inappropriate, such as the inclusion of <font>, but in general there is a good deal of consistent thinking within the HTML5 draft specs.

Never miond that <nav>, <header>, <footer> are WAYYYY to specific to fit in the html theory.

Have you ever looked at a list of HTML elements?
We have both <abbr> and <acronym>, don’t you think the distinction between those two is a bit too fine to worry about?
Do we really need <code>, <kbd>, <samp> and <var>?
Don’t you think that <bdo> is a bit too specific and rare to need an element?
What is the point of <address> when a generic <p> or <div> could be used?

HTML has always gone into some detail about the semantic difference between elements, and has tried to give a complete list of elements that allow authors to ascribe a role or function to all aspects of the contents. When HTML4.01 was finalised in 1999, web design was at a more primitive stage to where it is now, so it is no surprise that some elements, like <header> and <nav> were not felt to be relevant or appropriate. They are now, and they are far more relevant than many of the arcane elements in the list.

Most sites will have reason to include a <header>, a <nav> and a <footer>. Many will make legitimate use of <section> and/or <article>. But how many ever use <cite>, <dfn> or <ins>?

<header> is an instance of <div>, like how <b> is an instance of <strong>? Have you not known that?

Since <div> is semantic-less, so should <header> be.

Sorry, but you are really, really, really confused about this.

<header> is not an instance of <div>.
<b> is not an instance of <strong>.

<strong> indicates text content that needs strong emphasis. It’s default presentation is bold text.
<b> indicates text content that should be rendered in bold for typographical reasons. Its default presentation is also bold text.
Just because the default presentation is the same does not mean that one is a subset or instance of the other. They are independent and distinct elements that convey different meanings and are used for different purposes, but just happen to have the same default presentation.

<header> is a block-level element for a specific type of content, as are <p>, <blockquote>, <ul> and many others. <div> is simply a generic container that can be used when none of the available block-level elements are syntactically and semantically valid. It’s a fall-back for when you need a CSS or JS hook and there’s nothing better available. That doesn’t mean that <header>, <p> or <blockquote> are types of <div> or instances of <div>, they are alternatives to <div>.

so, how ~do~ you show emphasis in plain text then?

You show emphasis like this.

@Stevie

Good philosophy. Except the part where I’m confused and misunderstanding :slight_smile: Calling me that repeatedly won’t make it so :wink:

But your philosophy is no more than a good speech. I’m not saying: let’s fight the smallest details. I’m saying: look at the overview. I can see the forest behind the trees, can you?

These <header>, <article>, <nav>, <footer> and such new html5 elements were introduced only because of the overwhelming number of web pages, templates using divs having these values for their id or class attributes. ONLY!!!

So, you see, <header> IT IS an instance of <div>. IT WAS. And still will be, even by being a so called “legit html5 semantic”. Its past will never make up for its future.

Now, you try to circle back and tell me: <header> was never born peddling, it was conceived immaculately. Before the chicken there was the egg. (: lol this surely can go both ways, but hey!)

Well, not so much. Starting from the general div, some wanted to appease to lesser web devs and give them a specific en-vogue template: header, footer, nav, section, article, aside. They call it html5. What will happen with html5 after these trends will pass? It’ll go on sale and nobody will buy it. It’ll be melted and used as paper weight.

It won’t help. W/o solid knowledge, web pages from amateurs will still suck. No cow path will change that. Fine by me :slight_smile:

Bout the matter b. Well, b it’s one way written on paper media emphasised phrase elements. Now, those proposing html specs are humans. They error.

Instead of making the general emphasis elements like strong, they rushed into word processing history and knowledge and borrowed b.

So, it’s like <header> with <div>, only backwards.

No philosophy, no innuendo. Facts and history. :slight_smile: noonnope out.

no, that’s just you

:cool:

I forgot one thing. My only reason for embracing html5 would be the presence of the xml island element. Now, that’s fine thinking when it comes to pushing useful elements for serious web devs. But this one serious element is overlooked, in order to make room for dumb elements like <header>.

There is so much xml content floating around these days, but <video> had precedence. Never mind that you could “plug” such a xml element to virtually any purpose: image map, ads, canvas element…

God knows, SVG, AJAX are just a few reasons to embrace it naturally. Never mind that xhtml is not represented at all in html5 specs, at a serious level.

html5 get out of amateurs league!

Stomme:
I had two tags because I was using both to do an effect ( something like a sliding door) this is why I didnt just style the <label>. :slight_smile:


Noonnope, I can see how you came to your conclusion , but cannot agree. The <nav> tag is a perfect example … as it replaces using a <div class=“nav”> ( you cant even forgo the use of the <ul> as it doesn’t create a list… So, I would say the <nav> tag evolved out of the need to be able to mark up navigation not so much as it being a <div> with semantic meaning. Otherwise we could say <strong> is just <span> with semantic meaning… which is actually Stevie’s argument.


One has to remember semantics are an exercise in fuzzy logic. In a page about a ship, using <em> for the ship name might be the right thing to do, yet the same exact text in a page not about ships you may want to use <i> ( or <span> styled to display italics.


Then there is MY point… what happens when you need something NOT to have semantic value but to display a certain way ( in this case bold) when styles are off. This does happen ( I just used my example of the “log in” because it was fresh in my head).

I code my HTML first. I like starting this way because I can check my tags, structure and semantics… but it also allows me to see what the page would function like NAKED. So I am NOT thinking presentational so much here. I am not arguing using the <B> to bold things… ( tho in my next thread I intend to sing the praises of using the <table> and <td> for layout… JUST KIDDING!!!)

Seriously tho, there are some things that have always bothered me about naked pages when they are structured correctly:

  1. tiny “logo” names
  2. lack of bolded “guide” elements. (which is why I brought the issue of the <b> tag up)

left say you had as CSS FREE page… just HTML… with a mini-form for login, as I described:

Name:_____________________ Log:_____________________

Name:_____________________ Log:_____________________

It’s plain to see that the second form stands out, but is there a semantic need to use <strong> for “name”? Since i believe the answer to be “no”… that leaves the need for a TAG (not aided by CSS) that bolds, but carries no semantic weight.

@ noonnope: I’m thinking that Romanian does not use the typographic conventions that are common in English and presumably many western European languages. Bold and italic text derive their semantic values from the context. They are not, strictly speaking, presentational in that usage. For example, one might write, “Many soi-disant web designers are really graphic designers.” The italicized phrase is not emphasized. The italics merely say to the reader, “I am a foreign language”. For a book’s title, the typographic convention has been to make it bold, e.g. Heinlein’s Stranger in a Strange Land. Again, it does not mean to emphasize strongly; it’s simply a convention that derives its meaning from the context.

When using a typewriter, one would use quotes to delimit the phrase, since italics were not possible unless you were using an IBM Selectric, and switched balls for the italics. Likewise you’d underscore for bold.

@ r937: From my 20 years using email with plain text (a pox on all html and rich text email), bold, strong emphasis, and underscores are indicated by an underscore preceding and another following, e.g. hey! I’m talking to you. Italics and mild emphasis are indicated by virgules, e.g. /self-styled/ developers. I have seen asterisks used, but not so much in /my/ circles. :wink:

cheers,

gary