- From: Jonny Axelsson <jonny@metastasis.net>
- Date: Thu, 03 Feb 2000 10:26:40 +0100
- To: www-html@w3.org
Ref: XHTML 1.0, Appendix B. Element Prohibitions That section expresses HTML prohibitions that cannot be expressed in XML, including "a cannot contain other a elements." Since XHTML 1.0 is to be as backward compatible as at all possible, that restriction is reasonable. But are there real implemention issues to keep this restriction in the future? What Appendix B prevents is code like this: <a href="here" id="outer">some data including an <a href="there" id="inner">inner</a> and an outer href link</a> The reasonable interpretation is that the inner href will fire if the "inner" data was activated, overriding the outer href. An alternative interpretion would be a rule like in CSS, where the inner will override the outer if they are in conflict, otherwise they will enhance each other. The second interpretation will be more complex to implement and probably to use. The whole issue can be avoided with recoding: <a href="here" id="outer-1">some data including an </a><a href="there" id="inner">inner</a><a href="here" id="outer-2"> and an outer href link</a> But apart from making the code (and the tree) more complex and harder to maintain, the integrity of the outer link is lost. TWO USER INTERFACE EXAMPLES A and B are here two overlapping hypertextual rectangles. (I use the visual (WIMP) interface as example, this can be extended to other interactive interfaces too.) +------------+ |A | | +----+ | | |B | | | +----+ | | | +------------+ This would be the normal case with B being the inner anchor. The expected behaviour would be that if someone clicked inside B, B and not A would be activated, and if someone clicked inside A minus B, A would be activated, and if the click was anywhere else, neither would be activated. +-------+ |A | | +-------+ | |B | +----| | | | +-------+ This example applies primarily to visual interfaces. Here neither rectangle contain the other, but one will be seen as nearer (above) the other, and the one the user will interact with. The first example can be seen as a special case of this, as the B rectangle would be hidden from view if A had been closer than B. Any two elements can be put in this relation using CSS positioning whether or not the A elements are in proximity or being contained by one other. The responsibility will ultimately rest with the designer, but my point is that this is something a UA will have to consider in any case.
Received on Thursday, 3 February 2000 04:27:47 UTC