- From: Anssi Kostiainen via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 14 May 2012 18:11:16 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/camera
In directory hutz:/tmp/cvs-serv31018
Modified Files:
Overview.html
Log Message:
rewrite: align with implementations, re-use HTML5 terminology, concepts, and microsyntaxes
Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/camera/Overview.html,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -d -r1.126 -r1.127
--- Overview.html 11 May 2012 11:33:31 -0000 1.126
+++ Overview.html 14 May 2012 18:11:14 -0000 1.127
@@ -9,7 +9,7 @@
specStatus: "ED",
shortName: "html-media-capture",
editors: [
- {name: "Anssi Kostiainen", company: "Nokia (from May 11, 2012)"},
+ {name: "Anssi Kostiainen", company: "Nokia"},
{name: "Ilkka Oksanen", company: "Nokia (until May 10, 2012)"},
{name: "Dominique Hazaël-Massieux", company: "W3C (until May 10, 2012)"}
],
@@ -24,46 +24,27 @@
</head>
<body>
- <section id='abstract'>
- This specification defines HTML form enhancements that provide access to
- the audio, image and video capture capabilities of the device.
+ <section id="abstract">
+ The HTML Media Capture specification defines HTML form extensions that
+ facilitate users' access to media capture capabilities of the hosting device.
</section>
<section id="sotd">
- <p>
- This document is a the first part of the split of the
- <a href="http://www.w3.org/TR/2010/WD-capture-api-20100401/">previous
- version</a> of this document, focused on the integration of media
- capture in HTML forms based on an extension to the
- <a href="http://www.w3.org/TR/FileAPI/">FileAPI</a>. The second part of
- the split focused on programmatic access to the capture devices will be
- published separately.
- </p>
- <p>
- The Working Group is looking for feedback on the general approach of
- this new version, and will coordinate with the HTML and Web
- Applications Working Group to ensure the proper progress of this
- document.
- </p>
- <p>
- Issues and editors notes in the document highlight some of the points
- on which the group is still working and would particularly like to get
- feedback.
- </p>
</section>
- <section>
+ <section class="informative">
<h2>Introduction</h2>
<p>
- The HTML Form Based Media Capturing specification defines a new
- interface for media files, a new parameter for the accept attribute of
- the HTML input element in file upload state, and recommendations for
- providing optimized access to the microphone and camera of a
- hosting device.
+ This specification extends the <code>HTMLInputElement</code> with a new
+ <code>capture</code> attribute. The attribute enables content authors
+ to give hints of preferred means to capture local media such as images,
+ video, and sound, that is to be subsequently uploaded. Conformant user
+ agents provide their users more seamless access to the above-mentioned
+ media capture capabilities of the hosting device.
</p>
<p>
- Providing streaming access to these capabilities is outside of the
- scope of this specification.
+ Access to media streams from the hosting device is out of scope for
+ this specification.
</p>
</section>
@@ -82,107 +63,117 @@
</section>
<section id="security">
- <h2>Security and Privacy Considerations</h2>
+ <h2>Security and privacy considerations</h2>
<p>
This specification builds upon the security and privacy protections
- provided by the [[!HTML5]] <code><input type="file"></code> and
+ provided by the <code><input type="file"></code> [[!HTML5]] and
the [[!FILE-API]] specifications; in particular, it is expected that
any offer to start capturing content from the user’s device would
require a specific user interaction on an HTML element that is entirely
controlled by the user agent.
</p>
-
<p>
- In addition to the requirements already highlighted in the [[!HTML5]]
- and [[!FILE-API]] specifications, implementors should take care of
- additional leakage of privacy-sensitive data from captured media. For
- instance, embedding the user’s location in a captured media metadata
- (e.g. EXIF) might transmit more private data than the user might be
- expecting.
- </p>
- </section>
-
- <section id="formaccess">
- <h2>Capture aware file-select control</h2>
- <p>
- This section is normative.
- </p>
- <p>
- If an input element in the File Upload state [[!HTML5]] contains
- accept attribute with values <code>image/*</code>, <code>audio/*</code>,
- or <code>video/*</code>, the user agent can invoke a file picker that
- allows respectively the user to take a picture, record a sound file, or
- record a video in addition to selecting an existing file from the file
- system.
- </p>
- <p>
- See the <a href="#uiexamples">User Interface Examples</a> appendix for
- the illustration.
- </p>
- <p>
- In case the user chooses to capture video, audio, or image content, the
- user agent creates media files on the fly
- <a href="http://dev.w3.org/html5/spec/number-state.html#file-upload-state">
- as specified</a> in [[HTML5]].
- </p>
- <p>
- If the user selects files of whose MIME types match <code>image/*</code>,
- <code>audio/*</code>, or <code>video/*</code> (on the filesystem or via
- a successful media capture), the relevant files in the <code>files</code>
- attribute [[HTML5]] MUST implement the <code>MediaFile</code> interface.
+ Implementors should take care of additional leakage of privacy-sensitive
+ data from captured media. For instance, embedding the user’s location in
+ a captured media metadata (e.g. EXIF) might transmit more private data
+ than the user might be expecting.
</p>
- <pre class="example sh_html">
- <input type="file" accept="image/*" id="capture">
- </pre>
</section>
<section id="captureparam">
- <h2>The <code>capture</code> attribute</h2>
+ <h2>The capture attribute</h2>
<p>This section is normative.</p>
<p>
- The <code>capture</code> attribute may be added to the <code>input</code>
- element to provide user agents with a hint of that by the default a
- file picker should be in media capturing mode.
- </p>
- <p>
- The <code>capture</code> attribute is an enumerated attribute that can
- take one of the following values: <code>camera</code>, <code>camcorder
- </code>, <code>microphone</code>, <code>filesystem</code> (ASCII
- case-insensitive). These values indicate which source the file picker
- interface should preferably present to the user by default. Both the
- invalid and missing default value are <code>filesystem</code>.
+ When an <code>input</code> element's <code>type</code> attribute is in the
+ <a href="http://dev.w3.org/html5/spec/states-of-the-type-attribute.html#file-upload-state-type-file">
+ File Upload</a> state [[!HTML5]], the rules in this section apply.
</p>
- <div class="issue">
- What to do if there is no accept attribute? What if the accept attribute
- is set to a value that the pre-hinted device cannot support? See
- <a href="http://lists.w3.org/Archives/Public/public-device-apis/2011Apr/0013.html">
- related discussion</a>.
- </div>
- <dl title="[Supplemental] interface HTMLInputElement" class="idl">
+ <dl title="partial interface HTMLInputElement" class="idl">
<dt>attribute DOMString capture</dt>
<dd>
- One of <code>camera</code>, <code>camcorder</code>,
- <code>microphone</code>, <code>filesystem</code>
</dd>
</dl>
<p>
- For example, the following code indicates that the user is expected to
- upload an image from the device camera:
+ The <code>capture</code> attribute is used as a hint to the
+ <a>user agent</a> to invoke a file picker with a specific capture
+ <a>control type</a>.
</p>
- <pre class="example sh_html">
- <input type="file" accept="image/*" capture="camera" id="capture">
- </pre>
<p>
- A possible rendering of a file picker taking this parameter into
- account is offered in the <a href="#uiexamples">User Interface Examples
- appendix</a>.
+ The <code>capture</code> attribute controls the capture <a>state</a>
+ (and associated file picker control) of the element. It is an
+ <a href="http://dev.w3.org/html5/spec/common-microsyntaxes.html#keywords-and-enumerated-attributes">
+ enumerated attribute</a> [[!HTML5]]. The following table lists the
+ <a>keyword</a>s, <a>state</a>s, and corresponding <a>control type</a>s
+ for the attribute.
+ </p>
+ <table class="simple">
+ <tr>
+ <th><dfn>Keyword</dfn></th>
+ <th><dfn>State</dfn></th>
+ <th><dfn>Control type</dfn></th>
+ </tr>
+ <tr>
+ <td><code><dfn>camera</dfn></code></td>
+ <td><dfn>Image Capture</dfn></td>
+ <td>A camera</td>
+ </tr>
+ <tr>
+ <td><code><dfn>camcorder</dfn></code></td>
+ <td><dfn>Video Capture</dfn></td>
+ <td>A video camera</td>
+ </tr>
+ <tr>
+ <td><code><dfn>microphone</dfn></code></td>
+ <td><dfn>Sound Capture</dfn></td>
+ <td>A sound recorder</td>
+ </tr>
+ <tr>
+ <td><code><dfn>filesystem</dfn></code></td>
+ <td><dfn>File Upload</dfn> [[!HTML5]]</td>
+ <td>A generic file picker</td>
+ </tr>
+ </table>
+ <p>
+ The <code>capture</code> attribute's <em>invalid value default</em> and
+ <em>missing value default</em> is the <a>File Upload</a> state.
</p>
+ <p>
+ The <code>HTMLInputElement</code> interface's <code>accept</code>
+ attribute takes precedence over the <code>capture</code> attribute.
+ That is, if the <code>accept</code> attribute's value is set to a
+ MIME type that is not accepted in a defined capture <a>state</a>, the
+ <a>user agent</a> MUST act as if there was no <code>capture</code>
+ attribute.
+ </p>
+ <div class="note">
+ This specification complements the following behavior defined in
+ <a href="http://dev.w3.org/html5/spec/states-of-the-type-attribute.html#file-upload-state-type-file">
+ File Upload State</a> [[!HTML5]]: User agents may use the value of
+ [the <code>accept</code>] attribute to display a more appropriate user
+ interface than a generic file picker. For instance, given the value
+ <code>image/*</code>, a user agent could offer the user the option of
+ using a local camera or selecting a photograph from their photo
+ collection; given the value <code>audio/*, </code> a user agent could
+ offer the user the option of recording a clip using a headset
+ microphone.
+ </div>
</section>
- <section class='appendix' id="uiexamples">
- <h2>User Interface Examples</h2>
+ <section class="appendix informative">
+ <h2>Examples</h2>
<p>
- A media capture file picker might render as:
+ The following example indicates that the user is expected to take a
+ picture using the device's camera, and upload the picture taken:
+ </p>
+ <pre class="example sh_html">
+ <input type="file" accept="image/*" capture="camera">
+ </pre>
+ <p>
+ When an <code>input</code> element's <code>capture</code> attribute is
+ in the <a>Image Capture</a> state, the file picker may render as
+ presented on the right side. When the attribute is in the <a>File
+ Upload</a> state, the generic file picker may render as represented on
+ the left side.
</p>
<p>
<img alt="A File picker with camera support"
Received on Monday, 14 May 2012 18:11:20 UTC