It’s not about the table element, it’s about the API to construct and manipulate that element with a columns and rows interface which is largely superseded by general DOM manipulation.

Exactly like how `getElementById` replaced the direct use of the id as a JavaScript identifier.

I remember there being posts that explicitly discouraged using IDs directly, but I'm not sure of tge reasons anymore. Maybe browser incompatibilities or unclear scoping and confusion with other variables?

It was either Mozilla (Netscape, I think) or IE that it didn’t work on for the longest time.

I think that was a native IE API that Mozilla had to add support for, as well as document.all (Netscape used document.layers).

It works everywhere (it’s now specified in https://html.spec.whatwg.org/multipage/nav-history-apis.html...), but it’s brittle. It can break by adding colliding properties to window deliberately or by accidental global leak (… including things like setting in dev tools), by browser defining new globals, by some 'name' attribute conflict.