W3C home > Mailing lists > Public > public-html-comments@w3.org > January 2009

Re: Revised : User rich-content preferences object

From: Ian Hickson <ian@hixie.ch>
Date: Thu, 15 Jan 2009 23:29:46 +0000 (UTC)
To: ric <ric@hardacre.org>
Cc: public-html-comments@w3.org
Message-ID: <Pine.LNX.4.62.0901152328500.7181@hixie.dreamhostps.com>

I haven't done anything with the proposal below. I think it is interesting 
but I haven't heard any interest from browser vendors so I am reluctant to 
add such features at this point.

On Tue, 1 Jul 2008, ric wrote:
> ´╗┐FIRST REVISION of original proposal archived at
> http://lists.w3.org/Archives/Public/public-html-comments/2008Apr/0003.html
> Author: Ric Hardacre   
> Background
> ----------
> The advent of faster processors and broadband speeds combined with more
> widespread browser support for DOM and XMLHTTPRequest has caused an
> upsurge in the number of rich-media sites and pages on the WWW. Many of
> these host content within plugin containers and as such are
> "disconnected" from the traditional Document object present in the
> HTML/DOM specs.
> It is becoming apparent that such sites are expanding to fill their
> environments, making maximum use of available bandwith and processor
> cycles and in the process making assumptions about the 
> capabilities of their target users' systems. This is expecially true
> of mobile/roaming web users, who may be using low powered 
> hardware over a limited connection but still need certain javascript
> features (such as XMLHttpRequest) to operate an online application.
> In these instances an "all or nothing" approach to rich-content
> is clearly unacceptable.
> Outline of Proposal
> -------------------
> That a static class be placed belonging to the Document node within the
> DOM which hosts values set by the user to control their browsing
> experience. Scripts and embedded objects should refer to the object
> prior to carrying out any relevant "rich" actions. Whilst these
> settings are unenforcable by the browser (especially with regards to
> embedded objects) should such a system be folded into the HTML/DOM
> specification these sites, pages and plugins could therefore be flagged
> as being incompliant with the specification. In effect naming and
> shaming them into compliance.
> Browser vendors may be left to decide how to present these options to
> the user, be it per domain, site, or "zone" (internet vs intranet, for
> example) or to have quick toggles on the toolbars. However, the DOM
> implimentation should appear the same to any hosted javascript for all
> browsers wishing to advertise compliance with this proposal.
> Implimentation Example
> ----------------------
> This example assumes such an object exists within the document node and
> is called UserPreferences.
> function Plugin_OnLoad()
> {
>    //does the browser support the implimentation?
>    if( document.UserPreferences )
>       if( document.UserPreferences.AutoPlayVideo )
>          Plugin.PlayVideo();
> }
> In the above example the video only plays automatically if the
> UserPreferences object exists AND has the AutoPlayVideo boolean set to
> true.
> Implimentation Suggestions
> --------------------------
> The following are a suggested list of parameters that may be exposed to
> web pages in a read-only manner, it is hoped they are grouped and kept
> to a minimum - one boolean covers scrolling, moving and resizing effects
> for example, rather than have an individual setting for each.   
> int MaxStreamRate (NEW IN THIS REVISION)   
>  - The maximum streaming rate (bytes/sec) allowed by hosted content, specifically 
> Audio and Video, however this may apply to other stream-loading content
> such as Flash. If a user is sharing a network, or connecting via a
> mobile device their available bandwidth may be limited, this could then
> be used to force media into "low-res" mode. If a site's content 
> requires a streaming rate above this value it should still allow the
> user to choose to play the content, behaving much the same as
> AutoPlayVideo / AutoPlayAudio.   
> int MaxImageSize (NEW IN THIS REVISION)   
>  - The maximum size (bytes) of an inline image or non-streaming object
> allowed to be downloaded automatically. Mobile users may wish to set this
> to zero to maximise use of a pay-per-byte connection plan, for example.
> Users should be presented with an icon allowing them to load such images
> or objects on a case by case basis, provided the inline dimensions of the
> object allows it.  
> bool AutoPlayAudio
>  - Wether or not the user wishes audio content to play automatically, if
> this is set to false then the option to play the audio should still be
> available but a play button should be shown and only activated by a
> direct user click on that button. Never via a secondary scripting action
> (including document onload).
> bool AutoPlayVideo
>  - Wether or not the user wishes video content to play automatically, if
> this is set to false the option to play the video should still be
> available but a play button should be shown and only activated by a
> direct user click on that button. Never via a secondary scripting action
> (including document onload).
> int DefaultAudioVolume
>  - User's preferred audio volume (0-9) for all embedded content, if this is set to 0 then audio and video content should play (depending on the
> above two preferences) but muted. Users should be presented with the
> ability to override this on a per-content per-page-load basis - unmuting
> one video stream should not automatically unmute all future video
> streams hosted on the same site, for example. A user is allowed to set
> this to zero but still have AutoPlayAudio set to true! Note: This is
> deliberately not tied to the OS-wide volume settings, a user may have
> this set to 0 to allow them to listen to a podcast uninterupted whilst
> browsing, for example.
> bool AllowTransparency
>   - User's prefrence regarding transparent/translucent overlays. The
> setting here should also influence fade/transition effects that use
> transparency as well as drop-shadow effects, for example.
> bool AllowTransitions
>  - User's preference regarding dynamic scrolling,moving and resizing
> content. If this is false then dynamic content is still allowed but must
> "jump" to it's final open,close,position or scrolled state with no
> interpolation.
> Future Possibilities
> --------------------   
> It is envisioned that a number of the above settings be folded into
> a future HTTP revision, providing the server-side application with
> direct knowledge of the user's preferences regarding interactive
> content, this would allow much cleaner control for developers who
> would be able to serve fallback content without relying on
> client javascript degredation, overrides or redirects.
> As a number of these settings are bandwidth related it is hoped that
> one day a similar OS-hosted object exist with settings tied to the
> current (if any) internet connection, these could then "bubble up"
> into the browser for embedded objects to reference. Ultimately such
> an OS-hosted option would have it's settings auto-filled dependent
> on the user's current connection status, e.g. having AutoPlayVideo
> auto-set to false when the user uses a mobile dial-up account but
> true when using their home wifi broadband connection. This OS-hosted
> object should also have a "IsConnected" boolean to prevent any
> application from attempting to determine internet availability by
> checking for DNS timeouts! However this final paragraph has turned
> into a ramble and does not directly apply to the above proposal.                       
> Ric Hardacre
> cyclomedia.co.uk

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Thursday, 15 January 2009 23:30:22 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:26:25 UTC