On 11/7/11 5:31 PM, Richard Kennard wrote:
Hello everyone,
Based on my experiences developing a UI library over the past few years, I have
blogged an idea for HTML:
http://blog.kennardconsulting.com/2011/11/should-htmlnext-have-higher-level-of.html
In summary: could we introduce a higher level abstraction over 'input type='
such that the developer specifies the *data* type, not the widget type, and
the device renders the most appropriate widget? This would stop the current
proliferation of JavaScript-based widget libraries that are all duplicating
each other's effort.
This is the current practice. input type= and ARIA role="input" are the
high level abstractions
and vendors are free to create OS and UA implementations of various
types at their leisure.
This does not stop authors from creating their own widgets. Authors may
have various reasons to author a widget, presentation being one of them.
Webkit and Mozilla include various CSS pseudo-selectors to help authors
re-use native widgets with some presentational flexibility. That
experiment is also quite difficult. The Component model discussions on
Web Apps are an extension of that exploration.
I understand HTML 5 is introducing a date picker. But this is the thin end of
the wedge. There are always going to be many more possible widgets than the
HTML specification can support (e.g. spinners, sliders, color pickers etc).
<input type="[anything]"> falls back to <input type="text">, the default
style of <input>.
ARIA role="input" simply signals an input, nothing more.
Example:
role="color input" will fall back to "input", as type="color" will fall
back to "text".
Neither require "color" to be included in a specification.
What if we could leave this choice to the browser? So that browsers could
compete offering the best widget implementations to suit their target device,
accessibility requirements etc?
I'd prefer to leave the choice to the participants, whether it's a user
and author, or two speakers in conversation.
After they make their choice, then it's a great thing to have browsers
offer an alternative.
My best (current) example is <input type="file">. It's the best because
it's non-controversial, unlike input type="text".
With input type="file" it is now accepted practice to hide the input
field altogether and simply forward click events into the element.
That's what I want to see for all <input> types. The author and user can
decide how things are presented, and the DOM includes some usable
reference about those decisions.
It's great to have UA involvement in this, and to have native UA widgets
as a support mechanism
input type="range" role="slider" is a good area to watch the dynamic in
play. <audio controls> is another.
-Charles