- 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