Can we give attribute "name" to HTML <table>?
html, javascript
Solution
`name` is not an allowed attribute of `<table>` in HTML5. From the fine specification:
Permitted attributes
global attributes & border
And if you look at the global attributes you won't find `name` in the list.
So you can't put a `name` attribute on a `<table>` and still have valid HTML. `id` however is a global attribute so you can use that instead of `name` (if of course your name is going to be unique within the page).
Try running this:
<!DOCTYPE html>
<head><title>t</title></head>
<body>
<table name="pancakes"></table>
</body>
through http://validator.w3.org and you'll see that it doesn't like a `name` on `<table>`.
If you're still writing HTML4, you still can't put a `name` attribute on a `<table>`. From the fine specification:
<!ATTLIST TABLE -- table element --
%attrs; -- %coreattrs, %i18n, %events --
summary %Text; #IMPLIED -- purpose/structure for speech output--
width %Length; #IMPLIED -- table width --
border %Pixels; #IMPLIED -- controls frame width around table --
frame %TFrame; #IMPLIED -- which parts of frame to render --
rules %TRules; #IMPLIED -- rulings between rows and cols --
cellspacing %Length; #IMPLIED -- spacing between cells --
cellpadding %Length; #IMPLIED -- spacing within cells --
>
There's no `name` in that list and no name in `coreattrs`, `i18n`, or `events` either.
Problem
For the `<form>`, we can use a "name" like `<form name="name">`. In the same way, can we add it to `<table name="table1">`?