Having played with my proof-of-concept for tab-modal file selection
(etc.) sheets (CL: <http://codereview.chromium.org/164547>), I think
it's time for a draft design document. I'd especially appreciate
feedback from the UI people. Here goes....
Definitions:
A tab-specific dialog box or sheet ("dialog" for short) is a dialog
which is entirely restricted to a single tab and does not impair the
function of other tabs. In particular, one can still select or create
other tabs, and browse "normally" in them. We actually need to
distinguish between two types of tab-specific dialogs (justification below):
(1) Explicitly user-activated dialogs, such as open/save/print; call
these (fully) tab-modal dialogs.
(2) Dialogs caused by content, such as download (carpet-bombing)
blocking/http auth login; call these content-modal dialogs.
Justification for distinction:
Since in case (2) the user did not explicitly choose to have the dialog
displayed, the user should be able to get rid of it easily, e.g., by
navigating away or by closing the tab. A risk of not allowing these
things (navigation or tab closure) while a content-modal dialog is up is
that a site with nasty contents might be able to constantly cause such
dialogs to appear, without the user being able to get away from that
site. In case (1), the user specifically wanted the dialog, and
shouldn't be able to accidentally navigate away or change the contents
of the tab under the dialog.
Differences in behaviour between (1) and (2):
(1) A tab-modal dialog impairs all function in its tab until it is
dismissed. In particular, navigation should be disabled. For example,
one should not be able to use a bookmark to change the page contents
while a save or print dialog is up. To indicate that things are
disabled, the tool/bookmark-bar should appear fully disabled.
(2) A content-modal dialog impairs only interaction with the web
contents in the tab until it is dismissed (implicit is that it impairs
saving and printing of the contents of that tab). It can be dismissed by
navigating to another page, by closing the tab, or in the usual way
(OK/Cancel/whatever).
We want to play down the differences. The behaviour of either should be
obvious to the user, and what the user wants and expects.
UI issues/questions:
(a) When a tab-modal dialog is up, should the Page menu still be active?
(Probably not.) The Wrench menu? (Well, it's in the toolbar, so no. But,
on Windows and Linux, you don't have a global application menu bar, so
yes? I've gone with "no" on Mac. Note that if the answer is "yes" for
the Page menu, then most of its contents would have to be disabled!)
(b) Should a tab-modal (e.g., open/save/print) dialog impair tab
closure? Since the user chose to do something, probably yes. A different
answer would be "no" for open, but "yes" for save/print -- but this adds
complication and breaks consistency.
(c) If "yes" for (b), how should this be indicated to the user? What
should happen to the tab-close button (on each tab)? Maybe instead of a
normal hover highlight, the tab-close button should get a red highlight
or something like that?
(d) If "yes" for (b), what should the behaviour be upon attempted window
closure? We could disable it completely (ugh -- too mysterious). Better,
perhaps just select a tab with a tab-modal dialog showing? Which one if
there are more than one? By z-order (i.e., selected first, then
left-to-right)? Should it do so before closing any tabs (including the
ones which can be closed), or should it close some/all of the tabs which
can be closed?
(e) (Mac) Where should a tab-modal sheet hang from? The bottom of the
tool/bookmark-bar? This is aesthetically right, and should be okay since
we visually indicate that the toolbar is disabled. [N.B. Not yet
implemented.]
Probably, there were other things, but I don't remember right now.
- Trung
--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected]
View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---