Aryeh Gregor wrote:
> 
> See bug 10721.  Id's should not differ only in case: this apparently
> causes problems with IE, which treats them case-insensitively, and is
> also allegedly required or recommended by XHTML (a comment in
> Parser.php on line 3619 says this, but I can't find it in the spec).

Well, that rather puts a damper on that one, then.  Too bad. :(

> I would take two steps to ensure that conflicts are avoided:
> 
> 1) Prohibit user-provided id's from beginning with "mw-".  Since all
> new id's should have been using this for a long time now, it should
> cut out a lot of possibility for conflict.  Also add in other prefixes
> that are used, like "ca-", "p-", "n-", "page-".

A simpler, though more heavy-handed, approach might be simply to 
disallow dashes in section anchors (presumably replacing them with 
".2D").  This would leave any dashed IDs free for other uses.

> 2) Start making a list of all the old, deprecated style of id's that
> we use, and manually check against all of them with in_array().  We
> can start with some of the really common ones like "content" and let
> people create a more comprehensive list if they can be bothered, or as
> specific conflicts arise.

We might be able to adapt the existing code in the parser that prevents 
duplicate section anchors from occurring: just prepopulate the list of 
already seen anchors with any IDs that occur in skins.

> Now, how about figuring out how to get manually-specified id's like
> <span id="foo"> to be unique?  :)

The big problem there is that there's no sensible way to disambiguate 
them.  Probably the best we can do would be to silently drop any 
duplicates.  Or maybe replace them with a really in-your-face 
"disambiguation" like OMG-DUPLICATE-ID-whatever-FIX-IT-YOU-IDIOT-1. :)

Anyway, this kind of sounds like something Tidy ought to be doing. 
Doesn't it?

-- 
Ilmari Karonen

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to