Florian,
It may be simpler with heavy client side JavaScript as in solution c).
You may even reorder the table with it .
It may be a little heavy on the size on the page though.
What is the problem with solution d) for screenreaders ?
Baptiste
Well, make yourself comfortable...
I want to create an editor component where a question along with a bunch
of possible answers can be created and/or edited. Each question is
localized in one or more languages, e.g. german, english, french.
According to the role of the user or his task he may have complete
rights (edit questions and answers, add or delete answers), may only
translate from one language to another or may only view some languages.
The user may hide some languages for convenience.
So my solution approaches (not exhaustive):
a) a html table hiding a column (= a language) via Ajax and
WidgetState.INVISIBLE for each affected cell. This seems to be the best
solution for accessibility but suffers from a bug [1] returning span's
instead of td's.
b) a html table where the hiding is done via deleting and adding rows.
There's a problem reloading the data when the user wants to see a hidden
language again and with preventing deletion of database entries.
c) a html table where the hiding is done via client-side javascript and
manipulating css styles (one class per column). I have repressed the
problems with this.
d) a table made of div's instead of a classical table. Is a work-around
for a) but is bad for screenreaders. And I didn't test if span's are
returned or div's.
In the mind's eye I have something like tabs for each language, variable
in width depending on the number of languages displayed. The optimum
would be a scrollable area for the answer cells - displaying 10
languages would result in rather narrow columns otherwise. And with 40
possible answers the questions should be visible, too, as seen in
Excel's "fix window" feature.
Additionally when a language is hidden you may redisplay it by choosing
it from a drop-down-menu.
Reordering columns aka languages is also one of my dreams.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]