Why isn't the <html> element 100% supported on caniuse.com?
anderegg.ca
anderegg.ca
Usage calculation:
( ) All Users: Any usage % of browsers not tracked by caniuse is considered unsupported.
( ) All tracked users: Excludes the usage percentage of browsers not tracked on caniuse.
This implies that CanIUse pulls in data about global browser usage, but does not cover all of the browsers mentioned in that usage data. By default it just assumes that browsers that it doesn't track any data on are not supported. If you change this to All Tracked Users you then get 98.71%.
The sum total of the browsers listed in the chart which have unknown support (these are different than the browsers being referred to in the setting above) is 1.27%. Worth it to note that likely there's some rounding going on here, as when you take 98.71% and add in that 1.27% you get 99.97999..%
Pretty close though.
So the real issue is indeed that those browsers show Unknown, when I think we can safely say they do in fact support the html element.
And as such, they may not necessarily know how to parse <html>. They could be JSON scrapers!
I suppose that would be the remaining 0.03% though, since the 1.27% is accounted for, if we trust the upstream browser usage data.
To me, a "browser" is:
1. a User-Agent that interacts with the web through a HATEOAS model (i.e. it works in terms of hypermedia, not structured data);
2. with some external actor — the "user" — being "in the loop" for at least some of those HATEOAS interactions,
3. where the "user" is expected to be an intelligent, agile actor: one who can cope with changes in the possible HATEOAS interactions, or the insertion of novel HATEOAS interactions they weren't pre-trained on, etc;
4. and where the browser, as a User-Agent, is designed to offer such intelligent, agile actors an interactive tool for understanding and examining the current HATEOAS state of a web resource — a tool which enables such actors to not just receive a static description of a HATEOAS resource, but to probe the resource, and to observe changes in the resource (remember: hypermedia includes Javascript!), allowing the user to gradually refine a decision about how they will interact with the HATEOAS resource.
5. Finally, a browser then offers a "user" the ability to execute their decided-upon HATEOAS interactions through the same interactive representational model that enabled them to learn about the HATEOAS state. The same (usually visual) representations of links that can be hovered to see the URL or alt text, can be clicked to navigate to them; the same (usually visual) representations of form fields that can be examined for labels or placeholder text, can be click-focused and targeted with keyboard input; etc. When the user makes decisions about how to interact with the browser, they're making decisions about how to interact with a coherent Human-Computer Interface that browser is exposing to the user — one where the information and the affordances co-exist in the representational model.
Why so nit-picky? Because the edge-cases are weird. Here's what I mean:
• Chrome itself is, obviously, a browser. Chrome shows a human being (or a dog, or a robot's webcam) a visual rendering of a webpage on a screen. This "user", outside the computer, looking at the screen, can poke at the page with the mouse and keyboard to understand and interrogate the state of the HATEOAS resource at hand (a document with links; a form; some kind of CAPTCHA test; etc.) The human makes a decision about how to proceed given this understanding, and tells Chrome to do it (by clicking one of the visually-represented links; focusing and typing into the visually-represented form fields; etc.)
• w3m is also a browser. Same deal as above, even though it's a character-array representation rather than pixels.
• On the other hand, headless Chrome, when driven by a Puppeteer script that visits URLs and renders out screenshots to bake thumbnail previews for a social-media site — should not be considered a browser. There's no interactivity there, no "browsing"; it's just a dumb bot-agent using Chrome for its renderer.
• Headless Chrome, when driven by a scrapy-puppeteer to extract data from a website — is almost, but not quite, a browser. Scrapy "views" pages, and browses between them! It clicks links! It presses buttons! It fills out login forms! But Scrapy isn't an intelligent, agile agent — it can't cope with changes to the site's HATEOAS model. It isn't making decisions, and it can't take advantage of the "browser as HATEOAS-resource gestalt interrogation tool." In the end, it's just using Chrome to create a trail of authentic-looking network requests, and then parsing the results, outside of Chrome, using brittle, hardcoded logic. It's a bot.
• But what if, instead of Scrapy, we put ChatGPT in the driver's seat of a headless Chrome instance, by having it speak the Chrome DevTools protocol, and then giving it a prompt to solve some high-level problem "by accessing the web"? Well, ChatGPT is an "intelligent, agile actor" by my definition — it doesn't need pre-training on how to deal with a specific website; it can respond to its workflow changing over time. And ChatGPT can see and interpret images — so it can take advantage of the "browser as HATEOAS interaction-space interrogation tool", by doing things like scrolling the viewport or positioning the virtual cursor over things, then fetching screenshots and interpreting them. So headless Chrome, in this use-case, is (acting as) a browser.
• How about headless Chrome driven by a chatbot or Alexa skill, in turn being interacted with by a human? Well, that would seemingly depend on the level of HCI fidelity that is exposed through the bot-as-proxy. If the bot only knows how to do a few programmed-in commands — and it does them by scraping data using pre-programmed models, parsing the hypermedia into structured data, and then describing that structured data to you — then no, it's not a browser. (Even though a human kicked off these interactions, and will see the final result of these interactions, those interactions are being intermediated by a system that isn't itself an intelligent, agile actor.) On the other hand, if the bot is able to be told to navigate to arbitrary URLs; and describes them by fetching screenshots and feeding them to an ML image-to-text model to conjure a description; and allows the user to tell it how to interrogate the loaded resource with commands like "hover over the red button; what do I see now?" — then the system of headless-Chrome-plus-chatbot is a browser.
Special purpose is specific, and therefore not standard. I can produce a web-centric language that excludes <html> but has zero use beyond being a jackkass.
(Postscript: I don’t disagree with your point)
Not if it's included, but I use wget a lot. Checking src/html-url.c, it does not, in fact, support <html> at all (treating it as a unrecognized tag).
Huh, yeah, nerd-sniped on that one; I can't find anything either.
For the curious, MSDN is now called Microsoft Docs.
To the surprise of many, much of the documentation on the site is also open-source[1].
[0]: https://en.wikipedia.org/wiki/Microsoft_Developer_Network [1]: https://github.com/MicrosoftDocs
See also Apple, who, after a relatively brief dalliance with the name iTools, rebranded its online service as ".mac".
Sigh...
I miss early Internet names like these, although I suppose the fact that the original dot com era didn't last and a bunch of early startups got wiped out - Pets.com, anyone? - gave it a stench that marketers were all too willing to run away from at the first possible opportunity.
> will soon be a proud part of the Mozilla Developer Network (MDN)
https://developer.mozilla.org/en-US/blog/mdn-observatory/ (posted 25 October 2023)
> Their brilliant but offbeat idea grew into today's Mozilla Developer Network
https://developer.mozilla.org/en-US/docs/MDN/At_ten (last modified 25 January 2024)
> const heading = <h1>Mozilla Developer Network</h1>;
https://developer.mozilla.org/en-US/docs/Learn/Tools_and_tes...
site:https://developer.mozilla.org/en-US/ "mozilla developer network"
yielded ~115 results on Google
From the wikipedia article on acronyms[1], an initialism is a kind of acronym.
There are some definitions that specify that it must be pronounced as a word, although in common usage acronym includes initialisms , and what iteans to be "pronounced as a word" is kind of imprecise anyway. Is CIA pronounced as a single word, but the pronunciation comes from the pronunciation of the letters? I'd argue that it a single lexeme at least.
Oh, I see they have "anacronym" too, with a fine distinction of meaning. It's the difference between the word officially ceasing to stand for anything, and the public generally forgetting the word stands for.
One of my most favourite recursive acronyms is XINU which stands for "XINU Is Not Unix". The delightful thing about this acronym is that "XINU" is also the reverse of "UNIX".
Upon a closer look, it turns out that for a given word W, a recursive acronym proclaiming that it is not W while simultaneously being the reverse of the word W, we need W to be of the form W = "?NI?" where each "?" denotes a distinct letter. Some fictitious examples:
* ANIL ⇒ LINA = LINA Is Not ANIL.
* KNIT ⇒ TINK = TINK Is Not KNIT.
Words of the form "?N?" also work if we are happy with a contracted "is" in the acronym. In fact we can get circular recursive acronyms in such cases:
* ANI = ANI's Not INA ⇔ INA = INA's Not ANI.
* ONE = ONE's Not ENO ⇔ ENO = ENO's Not ONE.
Both acronyms in each pair refer to each other thus making them circular while also being the reverse of each other! These could be useful names to express friendly banter between rival projects.
What is so clever about this phrase is that it naturally completes to a full sentence that contains itself as an acronym!
I'm So Meta, Even This Acronym IS META!
A wonderful tribute to Hofstader's books that are full of such fascinating self-references.
DN = Developer Network
b) That would be way to ambiguous and imply this is the only/main developer website when it's just relevant for web developers.
Snapshot: https://webplatform.github.io
MDN is less ambiguous?
I'd maybe call it "misleading" more than "ambiguous" but meh.
"What's MDN stand far?" "Mozilla Developer Network"
I always understood it by analogy with MSDN so it wasn't confusing to me at all.
xD
Interestingly, they were one of the very first ISPs that I can remember, certainly one of the, if not the, most advertised to consumers at the time and I think it is the only ISP which still exists today from those very early days.
I wouldn’t ever use them personally, an apt analogy might be that choosing them today is like choosing AOL in the US.
I've updated the article to note this.
Also, I want to echo that MDN is a fantastic resource.
<!DOCTYPE html><title> </title>Trivia: That HTML is actually invalid, <title> </title> gets treated as a blank title, which is not valid. If you change it to <title>.</title> or similar it should be error free though.
Putting <!DOCTYPE html><title>.</title> in that validator returns no errors (it does have a warning though).
Although in response to OP's question, no, I don't think it is related.
Eh... not really.
The feature support matrix (as linked on CanIUse) comes from MDN's browser-compat-data repo. Here's the HTML element's source data: https://github.com/mdn/browser-compat-data/blob/main/html/el...
This doesn't contain the testing and usage info that CanIUse cites for support, though, just which browser versions included which features.
CanIUse also points to their own repo, which contains a lot of data: https://github.com/fyrd/caniuse
But I can't find an easy entry point to find where they're getting the numbers for a specific element. The data on there seems to be primarily for features.
So the more precise question is, where is CanIUse getting HTML element testing and usage numbers from? Because that seems to be the issue.
An analogy might be having a valid understanding and parsing of what "English" as part of an essay heading is unrelated to knowing what "fustigate" means despite the latter being an English word.
Is putting <html> on a page supposed to somehow alter the way the page is presented?
wget? It barely "supports" html; it has a parser because it can follow links, contrary to e.g. curl, for which "HTML" is just a stream of bytes really.
that tv-thing hanging in the underground or the bus rotating awkward advertisements, local weather and public transport info? It might very well use some minimal rendering engine that only knows barebones of HTML?
this thing in the set-top-box on the TV that gets "broken" HTML from some server and presents the buttons and such? same there.
I presume if you are liberal at what you consider "a browser" it makes sense that several will not support that element.