- From: François REMY <fremycompany_pub@yahoo.fr>
- Date: Thu, 5 Apr 2012 14:21:20 +0200
- To: "CSS 3 W3C Group" <www-style@w3.org>
Hi,
I know the css3-hyperlinks proposal [1] seems quite old and hasn’t been
implemented to-date but as I saw it shared on Twitter, I would like to
suggest to update the CSS3 Hyperlinks specification to reflect the following
comments:
(1) The “target-new: tab” declaration is not particulary intuitive since it’s
possible to use it conjointly with target-name to reuse an already-existing
object (which could be of any kind: iframe, window or tab) and since some
values of “target-name” restrict the possibilities for target-new to ‘window’
only. Indeed, the specification is very weak about how values are
interacting with each other but, for example, a “modal” target will
necessarily create a new window, how could it be a “tab”? Also, how could
this modal window be “behind” the current window?
(2) Additonnaly, there’s no way to replicate the current (and default)
behavior of many browsers who opens either a new window or a new tab when
opening a link, in function of the user preference (the property clearly
lacks an ‘auto’ value).
(3) It doesn’t feature a true replacement for window.open since there’s no
way to customize the newly created window’s size and chrome.
(4) I’m also afraid that ‘target’ is a too generic wording for the property
and I would prefer the use of ‘link-target’ instead (but I’m conscient it’s
just a personnal taste some may not share).
Here’s a sort of counter-proposal that’s just there to open up the debate:
link-target :: comma-separated list of :: any of (
/* values targeting frames */
current-frame (=initial)
parent-frame
root-frame
‘frame-name’
/* values targeting windows */
parent-window
root-window
new-window[(
[any of (‘frame-name’ | none)]
[,’other-options’] /* see window.open */
)]
modal-dialog[(
’other-options’ /* see window.open */
)]
/* other values */
auto
none
)
When a browser can’t create any valid target from a specified link-target
option (other than ‘none’), it goes down to the next element of the
‘link-target’ list, whose non-first options play the role of a fallback
chain. When no element of the list has been supported, the browser use the
default (‘auto’) behavior instead.
Sample:
.newWindow {
link-target: new-window;
}
.modalOrNothingLink {
link-target: modal-dialog, none;
}
.modalLink {
link-target: modal-dialog, new-window(‘modal-dialog’,
‘status=no,toolbar=no,menubar=no,location=no’);
}
.confirmLink {
link-target: modal-dialog(‘height=250,width=400’),
new-window(‘modal-dialog’,
‘height=250,width=400,status=no,toolbar=no,menubar=no,location=no’);
}
.openLogin {
link-target: new-window('login’,’height=500,width=300’),
current-frame; /* opeing facebook login in a new window or in current frame
in the case of a browser that don’t support tabs/windows (some smartphones)
*/
}
.returnToParent {
link-target: parent-window, current-frame; /* facebook login window
returning result to parent window by setting its url or setting its own url
in the case of a browser that don’t support tabs/windows (some smartphones)
*/
}
Hoping you did find my feedback interesting, (knowing it’s probably not the
most important thing you have to discuss for now)
François
[1] http://www.w3.org/TR/css3-hyperlinks/
Received on Thursday, 5 April 2012 12:21:42 UTC