Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[BUG] Dubbele id- en name-attribuut dmv jump- en anchor-tags

Pagina: 1
Acties:

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ik zat net even te kloten met wat [jump] en [anchor]-tags en 't viel me op dat de opgegeven labels onveranderd doorgegeven werden aan de HTML-source. Dat geeft mogelijkheden tot het volgende:
The id and name attributes share the same name space. This means that they cannot both define an anchor with the same name in the same document. It is permissible to use both attributes to specify an element's unique identifier for the following elements: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. When both attributes are used on a single element, their values must be identical.
't Is echter met de [anchor]-tag probleemloos mogelijk om anchors te maken met name-attributen "layout", "top", "quicksearch", "title" en nog vele anderen die reeds als id-attribuut in een standaard GoT-pagina gebruikt zijn.

Nu zou je natuurlijk kunnen zeggen: pech, moeten ze het maar goed doen, maar da's nogal een slechte insteek IMO. Client-input moet nou eenmaal correct afgehandeld worden en dat houdt IMO niet op bij security-issues.

Wellicht een idee om er iets voor te proppen? label -> useranchor-label of iets dergelijks? :)

Vreemd genoeg triggert een dubbele id/name-attribuut in een testpaginaatje geen error bij de W3C Validator. Maar 't blijft evengoed foutieve HTML. :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

they cannot both define an anchor with the same name in the same document
;)

Verder hoeft een name attribuut niet uniek te zijn, en zal in de parktijk een id en een name met dezelfde waarde maar op verschillende elementen geen problemen opleveren (en is ook geen spec conformance issue).

Je hebt wel een punt though, en ik denk dat het wellicht handig is om intern het label te prefixen zodat het sowieso niet clashed mat name/id attributen die al in gebruik zijn :)

Intentionally left blank


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Euhm, waar doel je op? Want een willekeurig element met een id-attribuut ís een anchor volgens mij?
The id attribute may be used to create an anchor at the start tag of any element (including the A element).
;)

Verder moet de name-attribuut wél een unieke waarde hebben:
name = cdata [CS]
This attribute names the current anchor so that it may be the destination of another link. The value of this attribute must be a unique anchor name. The scope of this name is the current document. Note that this attribute shares the same name space as the id attribute.
En volgens het voorbeeldje uit de pagina van 't W3C, waarbij je twee verschillende elementen met resp. een id- en name-attribuut hebt, staat aangeduidt als 'illegal'?

Verder geeft 't wél problemen als ik bijv een [jump=top] maak. Een eventuele [anchor=top] wordt volkomen genegeerd, aangezien er reeds een element met 't id="top" bestaat op alle GoT-pagina's. Firefox geeft de id's namelijk voorrang boven de name-attributen.

[ Voor 65% gewijzigd door Osiris op 25-09-2007 22:52 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ah, ik misinterpreteerde 'anchor' als het A-element uit jouw quote.
Anyway, die sectie uit de spec is sowieso flawed en schiet ook tekort in het beschrijven van UA behaviour in de 'ongeldige' gevallen. Sowieso zijn het constraints die niet in een DTD tot uitdrukking gebracht kunnen worden.

Ik zal eens kijken of HTML5 er al iets over te zeggen heeft :)
Edit, not much: http://www.whatwg.org/spe...n1.html#syntax-references

name lijkt ook geen author-conformant attribuut meer te zijn voor o.a. het A-element.

[ Voor 22% gewijzigd door crisp op 25-09-2007 22:59 ]

Intentionally left blank