name attribute 에 대하여

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
초보

name attribute 에 대하여

Post by 초보 »

현재 XHTML 1.0 Transitional 로 웹페이지를 만들고 있습니다.
그런데 일부 태그에 name 속성을 붙이면 w3c.org 의 검사를 통과하지 못합니다.
(div , ul 등)
해당 태그에서 name 속성을 없애면 통과합니다.
원래 name 속성은 아무 태그에나 붙일 수 있는 것 아니었나요???
두슬
서포터즈
서포터즈
Posts: 101
Joined: 2004 09 02 06:46 01
Contact:

Re: name attribute 에 대하여

Post by 두슬 »

초보 wrote:현재 XHTML 1.0 Transitional 로 웹페이지를 만들고 있습니다.
그런데 일부 태그에 name 속성을 붙이면 w3c.org 의 검사를 통과하지 못합니다.
(div , ul 등)
해당 태그에서 name 속성을 없애면 통과합니다.
원래 name 속성은 아무 태그에나 붙일 수 있는 것 아니었나요???
잘 모르지만, 다른분들이 답을 안달기에 달아봅니다.

name 말고 id 로 쓰셔야 하고요. 정히 name 도 필요한 경우라면 둘 다 쓰시면 될 것 같습니다.

4.10. The elements with 'id' and 'name' attributes

HTML 4 defined the name attribute for the elements a, applet, form, frame, iframe, img, and map. HTML 4 also introduced the id attribute. Both of these attributes are designed to be used as fragment identifiers.

In XML, fragment identifiers are of type ID, and there can only be a single attribute of type ID per element. Therefore, in XHTML 1.0 the id attribute is defined to be of type ID. In order to ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 documents MUST use the id attribute when defining fragment identifiers on the elements listed above. See the HTML Compatibility Guidelines for information on ensuring such anchors are backward compatible when serving XHTML documents as media type text/html.

Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.

C.8. Fragment Identifiers

In XML, URI-references [RFC2396] that end with fragment identifiers of the form "#foo" do not refer to elements with an attribute name="foo"; rather, they refer to elements with an attribute defined to be of type ID, e.g., the id attribute in HTML 4. Many existing HTML clients don't support the use of ID-type attributes in this way, so identical values may be supplied for both of these attributes to ensure maximum forward and backward compatibility (e.g., <a id="foo" name="foo">...</a>).

Further, since the set of legal values for attributes of type ID is much smaller than for those of type CDATA, the type of the name attribute has been changed to NMTOKEN. This attribute is constrained such that it can only have the same values as type ID, or as the Name production in XML 1.0 Section 2.3, production 5. Unfortunately, this constraint cannot be expressed in the XHTML 1.0 DTDs. Because of this change, care must be taken when converting existing HTML documents. The values of these attributes must be unique within the document, valid, and any references to these fragment identifiers (both internal and external) must be updated should the values be changed during conversion.

Note that the collection of legal values in XML 1.0 Section 2.3, production 5 is much larger than that permitted to be used in the ID and NAME types defined in HTML 4. When defining fragment identifiers to be backward-compatible, only strings matching the pattern [A-Za-z][A-Za-z0-9:_.-]* should be used. See Section 6.2 of [HTML4] for more information.

Finally, note that XHTML 1.0 has deprecated the name attribute of the a, applet, form, frame, iframe, img, and map elements, and it will be removed from XHTML in subsequent versions.
초보

Post by 초보 »

예, 저도 name 대신에 id 를 써야 한다는 것은 알고 있습니다.
다만 하위 브라우저 호환성을 위해서 name 을 쓰려고 합니다.
말씀하신 대로 name 과 id 를 모두 넣었더니 이런 문제가 생깁니다.
다른 태그는 괜찮은데 div 와 ul 에서만 문제가 생기네요...
eouia

Post by eouia »

당연히 폼 컨트롤을 제외한 다른 엘리먼트에 name을 쓰면 안되죠.
하위 호환성을 이야기 하셨는데, 아마도 javascript때문이신 것 같습니다. javascript를 고치셔야할겁니다.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest