- From: Robert J Burns <rob@robburns.com>
- Date: Fri, 13 Mar 2009 21:25:00 -0500
- To: Maciej Stachowiak <mjs@apple.com>, "L. David Baron" <dbaron@dbaron.org>
- Cc: Boris Zbarsky <bzbarsky@mit.edu>, HTMLWG <public-html@w3.org>
- Message-Id: <00FBD4AF-1CF1-4175-B776-EAA9A45CE115@robburns.com>
Hi Maciej DavidB, and Boris,
On Mar 13, 2009, at 4:15 PM, Maciej Stachowiak wrote:
>
> On Mar 13, 2009, at 12:39 PM, Boris Zbarsky wrote:
>
>> Maciej Stachowiak wrote:
>>> In general, Safari, Opera and Gecko try to coordinate NPAPI
>>> changes via plugin-futures and even though not every browser
>>> implements all recent additions, we do at least try to design them
>>> not to be specific to one browser.
>>
>> Right; I'm not suggesting that the intrinsic size API wouldn't be
>> designed in such a way that all the browsers involved can implement
>> it. Just that I can't speak on behalf of anyone but Gecko in terms
>> of wanting to implement it. ;)
>
> I think a way for plugins to report intrinsic size would be a useful
> general addition to the plugin API.
From the discussion surrounding the 'object' element I think this
suggestion may be merely the tip of the iceberg.
Other parameters (many read/write) that would be useful to share
between UA and plugins:
- contextual menu enhancement (where the UA creates the contextual
menu but provides space for the plugin to add items as Leif's test
demonstrate[1])
- parameters for
-- spatial (note these would only be one part of the information
used to determine the displayed dimensions)
* inherent dimensions
* inherent aspect ratio
-- temporal
* play/pause
* frame
* time-index
-- audible
* volume level
* mute
* balance
* alternate audio tracks (listing, enabling/disabling, volume
levels)
-- text equivalents (subtitles and captions)
* listing of available text equivalents: captions and subtitles
* enabling / disabling of one or more text equivalent
* spatial arrangement of one or more text equivalent
Obviously not all of these suggested parameter interfaces apply to all
plugins. However, by allowing plugins to opt into these we can provide
a richer experience for users and build accessibility into documents
by default. Similarly, whenever an object for a particular plugin has
focus, controls corresponding to these parameters can be made
available to the user (including disabled users). For example, a video
plugin may make use of all of these interfaces while an audio plugin
may only use the temporal and audible interfaces. A specialized
application/* plugin might make use of a completely different set. An
audio content handler plugin might even make use of spatial parameters
to, for example, display an oscilloscope
What this means is that the simple authoring approach ("<object
data='resource'>fallback/alternate text</object>") is all that an
author requires for most use cases to gain a rich user experience and
complete accessibility. Obviously an author may want to do more, but
this makes the simple things simple and the complicated things
possible. This is the type of approach that makes documents accessible
by default with the most limited authoring burden.
This also allows a UA (cooperating with a plugin) to provide complete
user interface controls for these features (automatically accessible
from the HTML authors perspective).
This doesn't have to be NPAPI-specific. HTML5 (or another spec) could
define a set of plugin requirements for a UA plugin architecture and
any plugin API could then conform to those requirements. It is
remarkable given the broad scope of the HTML5 draft that plugin
architecture has not taken a more significant role.
Take care,
Rob
[1]: <http://www.malform.no/html5/object>
Received on Saturday, 14 March 2009 02:25:39 UTC