- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Mon, 18 Oct 2010 08:58:04 -0700
- To: Aurélien Levy <aurelien.levy@free.fr>
- Cc: public html <public-html@w3.org>
On Mon, Oct 18, 2010 at 5:33 AM, Aurélien Levy <aurelien.levy@free.fr> wrote:
> Hi,
>
> One of the most used navigation design pattern on website or application is
> tabs.
> So I'm wondering why there isn't a new html5 element to manage that instead
> of ARIA/XUL/dl/ul, etc
>
> Maybe we can have something like :
> <tl>
> <ti></ti>
> <tc></tc>
> <ti></ti>
> <tc></tc>
> <ti></ti>
> <tc></tc>
> </tl>
>
> or with attribute
>
> <tl>
> <ti id="xxx"></ti>
> <ti id="zzz"></ti>
> <ti id="yyy"></ti>
> <tc for="xxx"></tc>
> <tc for="zzz"></tc>
> <tc for="yyy"></tc>
> </tl>
>
> detailed specifications for these elements can be taken from the ARIA spec
> http://www.w3.org/TR/2010/WD-wai-aria-20100916/roles#tab
In general, this is a styling problem, and one that's not too hard to
address in CSS using :target. Make your tabs an <a href=#card1>,
pointing to <div class=card id=card1>. This isn't perfect, though -
you can't target the current tab (though there's been suggestions for
a pseudo to match links that match the current page and/or target,
which may hit Selectors 4), and it's difficult to target a particular
tab to be open on page load.
An alternate idea with some potential is to combine <details> with
Template Layout. Something like:
<details open>
<summary>foo</summary>
FOO
</details>
<details>
<summary>bar</summary>
BAR
</details>
<style>
body {
display: template( "a" /min-content "b" /* );
}
body > details {
position: slot(b);
}
body > details > summary {
position: slot(a);
}
body > details[open] > summary {
font-weight: bold;
/* other "current tab" styling */
}
</style>
Not sure of the semantics there, but it has potential, given the
current lack in CSS to duplicate the functionality properly.
~TJ
Received on Monday, 18 October 2010 15:58:53 UTC