- From: Hardacre, Richard <Richard.Hardacre@uk.qioptiq.com>
- Date: Mon, 7 Apr 2008 12:28:27 +0100
- To: <public-html-comments@w3.org>
- Message-ID: <0621CE6F7F4FF4489C0E4D9F19B154AB28F8C2@stass11910.ad.local>
Proposal for a UserPreferences static DOM Object Author: Ric Hardacre Background ---------- The advent of faster processors and broadband speeds combined with more widespread browser support for DOM and XMLHTTPRequest has caused a large 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 hardware capabilities of their target users' systems. Whilst within a traditional operating system environ a user may be able to disable transition effects, transparencies and multimedia events - and have hosted applications respect those settings, there exists no commonly accessible concept of such settings within the DOM. This proposal attempts to address that lack of user control. 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. Some of these will be simple read-only booleans, such as wether or not to allow fade/transparency effects. And whilst these settings are unenforcable by the browser (especially with regards to third party plugins) should such a system be folded into the HTML5/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). But the DOM implimentation should be the same for all browsers wishing to advertise compliance with this proposal. Rationale --------- Access to the WWW is being made increasingly possible on a range of devices of varying computing power over connections of varying speed. A user may wish to use a service from a low-powered laptop, for example, and in that situation need "instant" feedback on actions without the desire for interpolated fold out boxes. The same user, on the other hand, may be happy with automated video playing whilst browsing from their main desktop system. Content specifications such as HTML5 should in this author's opinion, shy away from dictating which content is suitable for which domain of device (handheld, laptop, desktop) as future advances in connectivity, processor power and display technology can not be easily predicted. Instead these content preferences should be left to the user to decide, with perhaps instead a leaning towards certain "lightweight" defaults suggested regarding low-power portable devices. 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. 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 page load). 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 page load). int DefaultAudioVolume - User's preferred audio volume 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! 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. Other settings may be prudent for image depth and resolution for example, and may even be folded partially into future HTTP specifications: The ability for a device to request (if available) a low resolution version of an image, rather than rely on HTML's outdated "LOWRES" IMG tag parameter. These discussions can be had within the community alongside the possibilities for this Object. Further Possibilities --------------------- It is also possible that this object can be expanded to overcome some security related obstacles, specifically web application access to the user's copy-buffer. If the object contains a string that is read-write then the web-page may copy and paste to that. The implimentation of this could, again, be left to browser vendors but it is assumed a simple popup be employed showing the contents of the buffer and allowing the user to perform a manual copy/paste to and from it. Domains should each recieve their own "copy" of the buffer to prefent cross-site-scripting. This would mean that pages hosting script from multiple domains must sandbox each's access to the Object, but this may be neccesary in any case depending on the user's preferences if they are granular enough to allow blocking video originating on one site whilst allowing it to the rest by default, for example. Ric Hardacre This email and any attachments are confidential to the intended recipient and may also be privileged. If you are not the intended recipient please delete it from your system and notify the sender. You should not copy it or use it for any purpose nor disclose or distribute its contents to any other person. Qioptiq Ltd Registered Office Glascoed Road, St. Asaph, Denbighshire LL17 0LL Registered in England & Wales Company Number 876004
Received on Monday, 7 April 2008 11:29:59 UTC