Updated for CR publication.
authorMichael[tm] Smith <mike@w3.org>
Sat, 16 May 2015 20:42:40 +0900
changeset 45 806da06ea760
parent 44 044187e76fc8
child 46 8079867aca86
Updated for CR publication.
Makefile
Overview.src.html
TR.html
--- a/Makefile	Mon Jan 19 13:02:58 2015 -0800
+++ b/Makefile	Sat May 16 20:42:40 2015 +0900
@@ -13,5 +13,5 @@
 publish: Overview.src.html data Makefile
 	$(ANOLIS) --output-encoding=ascii --omit-optional-tags --quote-attr-values \
 	--w3c-compat --enable=xspecxref --enable=refs --w3c-shortname="notifications" \
-	--filter=".dontpublish" --pubdate="$(PUBDATE)" --w3c-status=WD \
+	--filter=".dontpublish" --pubdate="$(PUBDATE)" --w3c-status=CR \
 	$< TR.html
--- a/Overview.src.html	Mon Jan 19 13:02:58 2015 -0800
+++ b/Overview.src.html	Sat May 16 20:42:40 2015 +0900
@@ -68,6 +68,7 @@
  <dd><a href="http://dvcs.w3.org/hg/notifications/shortlog">http://dvcs.w3.org/hg/notifications/shortlog</a></dd>
 
  <dt>Previous Versions:</dt>
+ <dd><a href="http://www.w3.org/TR/2013/WD-notifications-20130912/">http://www.w3.org/TR/2013/WD-notifications-20130912/</a>
  <dd><a href="http://www.w3.org/TR/2012/WD-notifications-20120614/">http://www.w3.org/TR/2012/WD-notifications-20120614/</a>
  <dd><a href="http://www.w3.org/TR/2011/WD-notifications-20110301/">http://www.w3.org/TR/2011/WD-notifications-20110301/</a>
 
@@ -109,29 +110,28 @@
 <a href="http://www.w3.org/2010/web-notifications/">Web Notification
 Working Group</a> is the W3C working group responsible for this
 specification's progress along the W3C Recommendation track. The Working
-Group expects to advance this Working Draft to Recommendation
-Status.</p>
+Group expects to advance this specification to Recommendation status.</p>
 
-<p class="alt">This feature is also being worked on by
-the <a href="http://www.whatwg.org/">WHATWG</a>. The bulk of the
-text of this specification is available in the
-WHATWG <a href="http://notifications.spec.whatwg.org/">Notifications
-API Standard</a>, under a license that permits reuse of the
-specification text.</p>
+<p class="alt">A specification for Notifications is also being developed at
+<a href="https://notifications.spec.whatwg.org/">https://notifications.spec.whatwg.org/</a>.
+Recent work there has focused on integrating notifications with Service
+Workers and other new features. That specification also deprecates the
+<code>onshow</code> and <code>onclose</code> events that are present in
+this specification, under the rationale that those events lack sufficient
+use cases.
 
-<p>The two specifications are normatively identical up to WHATWG
-revision <a href="https://github.com/whatwg/notifications/commit/998421f">998421f</a>
-(W3C
-revision <a href="https://dvcs.w3.org/hg/notifications/raw-file/498b5397ed3f/Overview.html">498b5397ed3f</a>).
-Since that revision, the WHATWG is exploring new features which may be
-incorporated into future levels of this specification. Bugfixes and
-editorial changes have been merged to minimize divergence.</p>
-
-<p>Publication as a Working Draft does not imply endorsement by the W3C
+<p>Publication as a Candidate Recommendation does not imply endorsement by the W3C
 Membership. This is a draft document and may be updated, replaced or
 obsoleted by other documents at any time. It is inappropriate to cite this
 document as other than work in progress.
 
+<p>This specification is expected to advance to Proposed Recommendation by
+19 June 2015. To exit the Candidate Recommendation stage, the Web
+Notification Working Group will need to document a sufficient level of
+user-agent conformance with the requirements in the specification, as
+measured through the
+<a href="https://github.com/w3c/web-platform-tests/tree/master/notifications">Notifications test suite</a>.
+
 <p>This document was produced by a group operating under the
 <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>.
 W3C maintains a
--- a/TR.html	Mon Jan 19 13:02:58 2015 -0800
+++ b/TR.html	Sat May 16 20:42:40 2015 +0900
@@ -38,20 +38,20 @@
    [data-anolis-spec]::after { content:"[" attr(data-anolis-spec) "]"; font-size:.6em; vertical-align:super; text-transform:uppercase }
  }
 </style>
-<link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet">
+<link href="http://www.w3.org/StyleSheets/TR/W3C-CR" rel="stylesheet">
 <div class="head">
 
 
 <!--begin-logo-->
-<p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+<p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="https://www.w3.org/Icons/w3c_home" width="72"></a></p>
 <!--end-logo-->
 
 <h1>Web Notifications</h1>
-<h2 class="no-num no-toc" id="w3c-working-draft-14-june-2012">W3C Working Draft 14 June 2012</h2>
+<h2 class="no-num no-toc" id="w3c-candidate-recommendation-19-may-2015">W3C Candidate Recommendation 19 May 2015</h2>
 
 <dl>
  <dt>This Version:
- <dd class="publish"><a href="http://www.w3.org/TR/2012/WD-notifications-20120614/">http://www.w3.org/TR/2012/WD-notifications-20120614/</a>
+ <dd class="publish"><a href="http://www.w3.org/TR/2015/CR-notifications-20150519/">http://www.w3.org/TR/2015/CR-notifications-20150519/</a>
 
  <dt class="publish">Latest Version:
  <dd class="publish"><a href="http://www.w3.org/TR/notifications/">http://www.w3.org/TR/notifications/</a>
@@ -59,23 +59,27 @@
  <dt class="publish">Latest Editors Draft:
  <dd class="publish"><a href="http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html">http://dvcs.w3.org/hg/notifications/raw-file/tip/Overview.html</a>
 
+ </dd>
  <dt>Version History:
  <dd><a href="http://dvcs.w3.org/hg/notifications/shortlog">http://dvcs.w3.org/hg/notifications/shortlog</a></dd>
 
- <dt>Previous Version:</dt>
+ <dt>Previous Versions:</dt>
+ <dd><a href="http://www.w3.org/TR/2013/WD-notifications-20130912/">http://www.w3.org/TR/2013/WD-notifications-20130912/</a>
+ <dd><a href="http://www.w3.org/TR/2012/WD-notifications-20120614/">http://www.w3.org/TR/2012/WD-notifications-20120614/</a>
  <dd><a href="http://www.w3.org/TR/2011/WD-notifications-20110301/">http://www.w3.org/TR/2011/WD-notifications-20110301/</a>
 
- <dt>Editors:
+ <dt>Former W3C Editor:
+ <dd>John Gregg (<a href="http://www.google.com/">Google</a>)
+ &lt;<a href="mailto:johnnyg@google.com">johnnyg@google.com</a>&gt;</dd>
+ <dt>WHATWG Editor:
  <dd><a href="http://annevankesteren.nl/">Anne van Kesteren</a>
- (<a href="http://www.opera.com/">Opera Software ASA</a>)
+ (<a href="http://www.mozilla.org/">Mozilla</a>)
  &lt;<a href="mailto:annevk@annevk.nl">annevk@annevk.nl</a>&gt;</dd>
- <dd>John Gregg (<a href="http://www.google.com/">Google</a>)
- &lt;<a href="mailto:johnnyg@google.com">johnnyg@google.com</a>&gt;
 </dl>
 
 
 <!--begin-copyright-->
-<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2012 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
+<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2015 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
 <!--end-copyright-->
 
 </div>
@@ -84,7 +88,9 @@
 
 <h2 class="no-num no-toc" id="abstract">Abstract</h2>
 
-<p>This document defines an API for displaying simple notifications to the user.
+<p>Web notifications defines an API for end-user notifications. A
+notification allows alerting the user outside the context of a web page of
+an occurrence, such as the delivery of email.
 
 <h2 class="no-num no-toc" id="sotd">Status of this document</h2>
 
@@ -94,20 +100,37 @@
 found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a>
 at http://www.w3.org/TR/.</em>
 
-<p>This is the 14 June 2012 W3C Working Draft of Web Notifications.
+<p>This is the 19 May 2015 W3C Candidate Recommendation of Web Notifications.
 Please send comments to
 <a href="mailto:public-web-notification@w3.org">public-web-notification@w3.org</a>
 (<a href="http://lists.w3.org/Archives/Public/public-web-notification/">archived</a>).
 
-<p>This document was developed by the
-<a href="http://www.w3.org/2010/web-notifications/">Web Notification Working Group</a>.
-The Working Group expects to advance this Working Draft to Recommendation Status.
+<p>The W3C
+<a href="http://www.w3.org/2010/web-notifications/">Web Notification
+Working Group</a> is the W3C working group responsible for this
+specification's progress along the W3C Recommendation track. The Working
+Group expects to advance this specification to Recommendation status.</p>
 
-<p>Publication as a Working Draft does not imply endorsement by the W3C
+<p class="alt">A specification for Notifications is also being developed at
+<a href="https://notifications.spec.whatwg.org/">https://notifications.spec.whatwg.org/</a>.
+Recent work there has focused on integrating notifications with Service
+Workers and other new features. That specification also deprecates the
+<code>onshow</code> and <code>onclose</code> events that are present in
+this specification, under the rationale that those events lack sufficient
+use cases.
+
+<p>Publication as a Candidate Recommendation does not imply endorsement by the W3C
 Membership. This is a draft document and may be updated, replaced or
 obsoleted by other documents at any time. It is inappropriate to cite this
 document as other than work in progress.
 
+<p>This specification is expected to advance to Proposed Recommendation by
+19 June 2015. To exit the Candidate Recommendation stage, the Web
+Notification Working Group will need to document a sufficient level of
+user-agent conformance with the requirements in the specification, as
+measured through the
+<a href="https://github.com/w3c/web-platform-tests/tree/master/notifications">Notifications test suite</a>.
+
 <p>This document was produced by a group operating under the
 <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>.
 W3C maintains a
@@ -124,33 +147,36 @@
 
 
 <!--begin-toc-->
-<ol class="toc">
+<ul class="toc">
  <li><a href="#introduction"><span class="secno">1 </span>Introduction</a></li>
  <li><a href="#conformance"><span class="secno">2 </span>Conformance</a>
-  <ol class="toc">
-   <li><a href="#security"><span class="secno">2.1 </span>Security</a></ol></li>
+  <ul class="toc">
+   <li><a href="#security"><span class="secno">2.1 </span>Security</a></ul></li>
  <li><a href="#terminology"><span class="secno">3 </span>Terminology</a></li>
  <li><a href="#model"><span class="secno">4 </span>Model</a>
-  <ol class="toc">
-   <li><a href="#permission"><span class="secno">4.1 </span>Permission</a></li>
-   <li><a href="#notification-lists"><span class="secno">4.2 </span>Notification lists</a></li>
-   <li><a href="#showing-a-notification"><span class="secno">4.3 </span>Showing a notification</a></li>
-   <li><a href="#closing-a-notification"><span class="secno">4.4 </span>Closing a notification</a></li>
-   <li><a href="#pending-notifications"><span class="secno">4.5 </span>Pending notifications</a></li>
-   <li><a href="#displaying-notifications"><span class="secno">4.6 </span>Displaying notifications</a></li>
-   <li><a href="#replacing-a-notification"><span class="secno">4.7 </span>Replacing a notification</a></ol></li>
+  <ul class="toc">
+   <li><a href="#direction-0"><span class="secno">4.1 </span>Direction</a></li>
+   <li><a href="#language-0"><span class="secno">4.2 </span>Language</a></li>
+   <li><a href="#permission"><span class="secno">4.3 </span>Permission</a></li>
+   <li><a href="#notification-lists"><span class="secno">4.4 </span>Notification lists</a></li>
+   <li><a href="#showing-a-notification"><span class="secno">4.5 </span>Showing a notification</a></li>
+   <li><a href="#activating-a-notification"><span class="secno">4.6 </span>Activating a notification</a></li>
+   <li><a href="#closing-a-notification"><span class="secno">4.7 </span>Closing a notification</a></li>
+   <li><a href="#pending-notifications"><span class="secno">4.8 </span>Pending notifications</a></li>
+   <li><a href="#displaying-notifications"><span class="secno">4.9 </span>Displaying notifications</a></li>
+   <li><a href="#replacing-a-notification"><span class="secno">4.10 </span>Replacing a notification</a></ul></li>
  <li><a href="#api"><span class="secno">5 </span>API</a></li>
- <li><a href="#rendering"><span class="secno">6 </span>Rendering</a></li>
- <li><a href="#examples"><span class="secno">7 </span>Examples</a>
-  <ol class="toc">
-   <li><a href="#using-events"><span class="secno">7.1 </span>Using events</a></li>
-   <li><a href="#tags-example"><span class="secno">7.2 </span>Using the <code title="">tag</code> member for multiple instances</a></li>
-   <li><a href="#using-the-tag-member-for-a-single-instance"><span class="secno">7.3 </span>Using the <code title="">tag</code> member for a single instance</a></ol></li>
+ <li><a href="#examples"><span class="secno">6 </span>Examples</a>
+  <ul class="toc">
+   <li><a href="#using-events"><span class="secno">6.1 </span>Using events</a></li>
+   <li><a href="#tags-example"><span class="secno">6.2 </span>Using the <code title="">tag</code> member for multiple instances</a></li>
+   <li><a href="#using-the-tag-member-for-a-single-instance"><span class="secno">6.3 </span>Using the <code title="">tag</code> member for a single instance</a></ul></li>
  <li><a class="no-num" href="#references">References</a></li>
- <li><a class="no-num" href="#acknowledgments">Acknowledgments</a></ol>
+ <li><a class="no-num" href="#acknowledgments">Acknowledgments</a></ul>
 <!--end-toc-->
 
 
+
 <h2 id="introduction"><span class="secno">1 </span>Introduction</h2>
 
 <p>This specification provides an API to display notifications to alert
@@ -176,14 +202,12 @@
 platform-independent. Since the common platforms do not provide the same
 functionality, this spec will indicate what events are guaranteed and
 which are not. In particular, notifications as specified here only can
-contain text and icon content. In the future, notifications generated from
-web content may wish to contain web content themselves, but that is outside
-the scope of this document.
+contain text and icon content.
 
 <p>In general, the event model for notifications is best-effort; while the
 <code><a href="#notification">Notification</a></code> object offers a <code title="">click</code> event,
 applications may enhance their functionality by listening for that event,
-but <em>must not depend on receiving it</em>, in case the underlying
+but cannot depend on receiving it, in case the underlying
 notification platform does not provide that capability.
 
 
@@ -209,11 +233,14 @@
 user.
 
 
+
 <h2 id="terminology"><span class="secno">3 </span>Terminology</h2>
 
-<p>Most terminology used in this specification is from DOM and HTML.
+<p>Most terminology used in this specification is from DOM, HTML, IDL, and URL.
 <a href="#refsDOM">[DOM]</a>
 <a href="#refsHTML">[HTML]</a>
+<a href="#refsWEBIDL">[WEBIDL]</a>
+<a href="#refsURL">[URL]</a>
 
 
 
@@ -224,22 +251,59 @@
 delivery of email.
 
 <p>Each <a href="#concept-notification" title="concept-notification">notification</a> has a
-<dfn id="title">title</dfn>. For specification simplicity each
-<a href="#concept-notification" title="concept-notification">notification</a> also has a
-<dfn id="title-direction">title direction</dfn> and <dfn id="body-direction">body direction</dfn>, both of which are
-initially "<code title="">auto</code>".
+<dfn id="title">title</dfn>, <dfn id="direction">direction</dfn>,
+<dfn id="language">language</dfn>, and an <dfn id="origin">origin</dfn>.
 
 <p>Each <a href="#concept-notification" title="concept-notification">notification</a> <em>can</em>
-have an associated <dfn id="body">body</dfn>, <dfn id="tag">tag</dfn>, and <dfn id="icon-url">icon URL</dfn>.
+have an associated <dfn id="body">body</dfn>, <dfn id="tag">tag</dfn>, <dfn id="icon-url">icon URL</dfn>, and
+<dfn id="icon-image">icon image</dfn>.
+
+<p class="note">Developers are encouraged to not convey information
+through an icon, sound, or vibration pattern that is not otherwise
+accessible to the end user.
+
+<h3 id="direction-0"><span class="secno">4.1 </span>Direction</h3>
+
+<p>This section is written in terms equivalent to those used in the
+Rendering section of HTML. <a href="#refsHTML">[HTML]</a>
+
+<!-- keep this in sync with
+     http://www.whatwg.org/specs/web-apps/current-work/#text-rendered-in-native-user-interfaces -->
+
+<p>User agents are expected to honor the Unicode semantics of the text of a
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#title">title</a>
+and <a href="#body">body</a>. Each is expected to be treated as an independent set
+of one or more bidirectional algorithm paragraphs when displayed, as defined
+by the bidirectional algorithm's rules P1, P2, and P3, including, for
+instance, supporting the paragraph-breaking behaviour of
+U+000A LINE FEED (LF) characters. For each paragraph of the
+<a href="#title">title</a> and <a href="#body">body</a>, the
+<a href="#concept-notification" title="concept-notification">notification</a>'s
+<a href="#direction">direction</a> provides the higher-level override of rules P2 and P3
+if it has a value other than "<code title="">auto</code>".
+<a href="#refsBIDI">[BIDI]</a>
 
 
-<h3 id="permission"><span class="secno">4.1 </span>Permission</h3>
+<h3 id="language-0"><span class="secno">4.2 </span>Language</h3>
+
+<!-- keep this in sync with
+     http://www.whatwg.org/specs/web-apps/current-work/#attr-lang -->
+
+<p>The <a href="#concept-notification" title="concept-notification">notification</a>'s
+<a href="#language">language</a> specifies the primary language for the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#title">title</a>
+and <a href="#body">body</a>. Its value is a valid BCP 47 language tag, or the
+empty string. The empty string indicates that the primary language is
+unknown. <a href="#refsLANG">[LANG]</a>
+
+
+<h3 id="permission"><span class="secno">4.3 </span>Permission</h3>
 
 <p><a href="#concept-notification" title="concept-notification">Notifications</a> can only be
 displayed if the user (or user agent on behalf of the user) has granted
 <dfn id="permission-0">permission</dfn>. The <a href="#permission-0">permission</a> to display
 <a href="#concept-notification" title="concept-notification">notifications</a> for a given
-<a class="external" href="http://tools.ietf.org/html/rfc6454#section-4">origin</a> can be one of three strings:
+<a class="external" href="https://tools.ietf.org/html/rfc6454#section-4">origin</a> can be one of three strings:
 
 <dl>
  <dt>"<code title="">default</code>"
@@ -261,46 +325,65 @@
 for the application to ask for <a href="#permission-0">permission</a>.
 
 
-<h3 id="notification-lists"><span class="secno">4.2 </span>Notification lists</h3>
+<h3 id="notification-lists"><span class="secno">4.4 </span>Notification lists</h3>
 
 <p>The user agent must keep a <dfn id="list-of-pending-notifications">list of pending notifications</dfn> and
 a <dfn id="list-of-active-notifications">list of active notifications</dfn>.
 
-<h3 id="showing-a-notification"><span class="secno">4.3 </span>Showing a notification</h3>
+<h3 id="showing-a-notification"><span class="secno">4.5 </span>Showing a notification</h3>
 
 <p>The <dfn id="show-steps">show steps</dfn> for a given <var title="">notification</var> are:
 
 <ol>
- <li><p>If <a href="#permission-0">permission</a> for the current
- <a class="external" href="http://tools.ietf.org/html/rfc6454#section-4">origin</a> is not
- "<code title="">granted</code>", cancel any ongoing
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch">fetch</a> for
+ <li><p>If <a href="#permission-0">permission</a> for <var title="">notification</var>'s
+ <a href="#origin">origin</a> is not "<code title="">granted</code>", cancel any ongoing
+ <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch">fetch</a> for
  <var title="">notification</var>'s <a href="#icon-url">icon URL</a>,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">queue a task</a> to
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a> named
- <code title="">error</code> on <var title="">notification</var>, and terminate
- these steps.
+ <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">queue a task</a> to
+ <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
+ named <code title="">error</code> on <var title="">notification</var>, and
+ terminate these steps.
 
  <li><p>If there is a <a href="#concept-notification" title="concept-notification">notification</a>
  in the <a href="#list-of-pending-notifications">list of pending notifications</a> or the
  <a href="#list-of-active-notifications">list of active notifications</a> whose <a href="#tag">tag</a> equals
- <var title="">notification</var>'s <a href="#tag">tag</a>, run the
- <a href="#replace-steps">replace steps</a> and terminate these steps.
+ <var title="">notification</var>'s <a href="#tag">tag</a> and whose
+ <a href="#origin">origin</a> equals <var title="">notification</var>'s
+ <a href="#origin">origin</a>, run the <a href="#replace-steps">replace steps</a> for that
+ <a href="#concept-notification" title="concept-notification">notification</a> and
+ <var title="">notification</var>, and then terminate these steps.
 
  <li><p>If the device allows notifications to be displayed immediately
  without limitations on the number of concurrent notifications, run
  the <a href="#display-steps">display steps</a> and terminate these steps.
 
  <li><p>If the device has limitations on the number of concurrent
- notifications, either immediately call to a notifications platform which
+ notifications, either immediately call to a notification platform which
  natively supports queueing, or append <var title="">notification</var> to the
  <a href="#list-of-pending-notifications">list of pending notifications</a>.
 </ol>
 
-<h3 id="closing-a-notification"><span class="secno">4.4 </span>Closing a notification</h3>
+<h3 id="activating-a-notification"><span class="secno">4.6 </span>Activating a notification</h3>
+
+<p>When a <a href="#concept-notification" title="concept-notification">notification</a>
+<var title="">notification</var> is activated by the user, assuming the underlying
+notification platform supports activation, the user agent must, for each
+<code><a href="#notification">Notification</a></code> object representing <var title="">notification</var>,
+<a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">queue a task</a> to
+<a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
+named <code title="">click</code> on the <code><a href="#notification">Notification</a></code> object.
+
+<p class="note">Throughout the web platform "activate" is intentionally misnamed as "click".
+
+<p class="note">User agents are strongly encouraged to make
+<code class="external" title="dom-window-focus"><a href="https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus">window.focus()</a></code> work from within
+the event listener for the event named <code title="">click</code> as a means of focusing the
+browsing context related to the notification.
+
+<h3 id="closing-a-notification"><span class="secno">4.7 </span>Closing a notification</h3>
 
 <p>When a <a href="#concept-notification" title="concept-notification">notification</a> is closed,
-either by the underlying notifications platform or by the user, the
+either by the underlying notification platform or by the user, the
 <a href="#close-steps">close steps</a> for it must be run.
 
 <p>The <dfn id="close-steps">close steps</dfn> for a given <var title="">notification</var> are:
@@ -310,15 +393,15 @@
  <a href="#list-of-pending-notifications">list of pending notifications</a> nor in the
  <a href="#list-of-active-notifications">list of active notifications</a>, terminate these steps.
 
- <li><p><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">Queue a task</a> to remove
+ <li><p><a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">Queue a task</a> to remove
  <var title="">notification</var> from either the
  <a href="#list-of-pending-notifications">list of pending notifications</a> or the
  <a href="#list-of-active-notifications">list of active notifications</a>, and
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
+ <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
  named <code title="">close</code> on <var title="">notification</var>.
 </ol>
 
-<h3 id="pending-notifications"><span class="secno">4.5 </span>Pending notifications</h3>
+<h3 id="pending-notifications"><span class="secno">4.8 </span>Pending notifications</h3>
 
 <p>Whenever the <a href="#list-of-pending-notifications">list of pending notifications</a> is not empty, the
 user agent must wait and monitor changes in the available notification space
@@ -331,76 +414,90 @@
 <a href="#list-of-pending-notifications">list of pending notifications</a> and then remove it from the
 <a href="#list-of-pending-notifications">list of pending notifications</a>.
 
-<h3 id="displaying-notifications"><span class="secno">4.6 </span>Displaying notifications</h3>
+<h3 id="displaying-notifications"><span class="secno">4.9 </span>Displaying notifications</h3>
 
 <p>The <dfn id="display-steps">display steps</dfn> for a given <var title="">notification</var>
 are:
 
 <ol>
- <li><p>If the notification platform supports icons and
- <var title="">notification</var>'s <a href="#icon-url">icon URL</a> has not yet been
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch" title="fetch">fetched</a>,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch">fetch</a> it and wait for the resource to be
- fully downloaded.
+ <li>
+  <p>If the notification platform supports icons,
+  <var title="">notification</var>'s <a href="#icon-url">icon URL</a> is set and has not
+  yet been <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch" title="fetch">fetched</a>,
+  <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch">fetch</a> it and wait for the resource to
+  be fully downloaded.
 
- <li><p>If <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch" title="fetch">fetching</a>
- <var title="">notification</var>'s <a href="#icon-url">icon URL</a> failed for some
- reason or the image format is not supported,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">queue a task</a> to
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
- named <code title="">error</code> on <var title="">notification</var> and terminate
- these steps.
+  <p>Once <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch" title="fetch">fetching</a> has
+  finished and the image format is supported, set
+  <var title="">notification</var>'s <a href="#icon-image">icon image</a> to the decoded resource.
+  (Otherwise <var title="">notification</var> has no <a href="#icon-image">icon image</a>.)
 
- <li><p><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">Queue a task</a> to display
- <var title="">notification</var> on the device (e.g. by calling the
- appropriate notification platform), append <var title="">notification</var> to the
- <a href="#list-of-active-notifications">list of active notifications</a>, and
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
- named <code title="">show</code> on <var title="">notification</var>.
+ <li>
+  <p><a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">Queue a task</a> to run these substeps:
+
+  <ol>
+   <li><p>Display <var title="">notification</var> on the device (e.g. by
+   calling the appropriate notification platform).
+
+   <li><p>If displaying fails (e.g. the notification platform returns an
+   error),
+   <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
+   named <code title="">error</code> on <var title="">notification</var> and
+   terminate these steps.
+
+   <li><p>Append <var title="">notification</var> to the
+   <a href="#list-of-active-notifications">list of active notifications</a>.
+
+   <li><p><a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">Fire an event</a>
+   named <code title="">show</code> on <var title="">notification</var>.
+  </ol>
 </ol>
 
 
-<h3 id="replacing-a-notification"><span class="secno">4.7 </span>Replacing a notification</h3>
+<h3 id="replacing-a-notification"><span class="secno">4.10 </span>Replacing a notification</h3>
 
 <p>The <dfn id="replace-steps">replace steps</dfn> for replacing an <var title="">old</var>
 <a href="#concept-notification" title="concept-notification">notification</a> with a
 <var title="">new</var> one are:
 
 <ol>
- <li><p>If the notification platform supports icons and
- <var title="">new</var>'s <a href="#icon-url">icon URL</a> has not yet been
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch" title="fetch">fetched</a>,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch">fetch</a> it and wait for the resource to be
- fully downloaded.
+ <li>
+  <p>If the notification platform supports icons,
+  <var title="">new</var>'s <a href="#icon-url">icon URL</a> is set and has not
+  yet been <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch" title="fetch">fetched</a>,
+  <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch">fetch</a> it and wait for the resource to
+  be fully downloaded.
 
- <li><p>If <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch" title="fetch">fetching</a>
- <var title="">new</var>'s <a href="#icon-url">icon URL</a> failed for some
- reason or the image format is not supported,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">queue a task</a> to
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
- named <code title="">error</code> on <var title="">new</var> and terminate
- these steps.
+  <p>Once <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch" title="fetch">fetching</a> has
+  finished and the image format is supported, set
+  <var title="">new</var>'s <a href="#icon-image">icon image</a> to the decoded resource.
+  (Otherwise <var title="">new</var> has no <a href="#icon-image">icon image</a>.)
 
  <li><p>If <var title="">old</var> is in the
  <a href="#list-of-pending-notifications">list of pending notifications</a>,
- <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">queue a task</a> to replace
+ <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">queue a task</a> to replace
  <var title="">old</var> with <var title="">new</var>, in the same position, in
  the <a href="#list-of-pending-notifications">list of pending notifications</a>, and
- <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
+ <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
  named <code title="">close</code> on <var title="">old</var>.
 
  <li>
   <p>Otherwise,
-  <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">queue a task</a> to replace
+  <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">queue a task</a> to replace
   <var title="">old</var> with <var title="">new</var>, in the same position, in
   the <a href="#list-of-active-notifications">list of active notifications</a>,
-  <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
+  <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
   named <code title="">close</code> on <var title="">old</var>, and
-  <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-event-fire" title="concept-event-fire">fire an event</a>
+  <a class="external" href="https://dom.spec.whatwg.org/#concept-event-fire" title="concept-event-fire">fire an event</a>
   named <code title="">show</code> on <var title="">new</var>.
 
   <p>If the notification platform does not support replacement this
-  requirement may be addressed by removal and addition instead.
+  requirement may be addressed by running the <a href="#close-steps">close steps</a> for
+  <var title="">old</var> and then running the <a href="#display-steps">display steps</a> for
+  <var title="">new</var>.
+
+  <p class="note">Notification platforms are strongly encouraged to support
+  native replacement. It is much nicer.
 </ol>
 
 
@@ -412,24 +509,31 @@
 <a href="#dom-notification" title="dom-Notification">constructor</a>.
 
 <pre class="idl">[<a href="#dom-notification" title="dom-Notification">Constructor</a>(DOMString <var title="">title</var>, optional <a href="#notificationoptions">NotificationOptions</a> <var title="">options</var>)]
-interface <dfn id="notification">Notification</dfn> : <a class="external" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#eventtarget">EventTarget</a> {
+interface <dfn id="notification">Notification</dfn> : <a class="external" href="https://dom.spec.whatwg.org/#eventtarget">EventTarget</a> {
   static readonly attribute <a href="#notificationpermission">NotificationPermission</a> <a href="#dom-notification-permission" title="dom-Notification-permission">permission</a>;
-  static void <a href="#dom-notification-requestpermission" title="dom-Notification-requestPermission">requestPermission</a>(<a href="#notificationpermissioncallback">NotificationPermissionCallback</a> <var title="">callback</var>);
+  static void <a href="#dom-notification-requestpermission" title="dom-Notification-requestPermission">requestPermission</a>(optional <a href="#notificationpermissioncallback">NotificationPermissionCallback</a> <var title="">callback</var>);
 
-  [TreatNonCallableAsNull] attribute <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#function">Function</a>? <a href="#handler-onclick" title="handler-onclick">onclick</a>;
-  [TreatNonCallableAsNull] attribute <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#function">Function</a>? <a href="#handler-onshow" title="handler-onshow">onshow</a>;
-  [TreatNonCallableAsNull] attribute <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#function">Function</a>? <a href="#handler-onerror" title="handler-onerror">onerror</a>;
-  [TreatNonCallableAsNull] attribute <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#function">Function</a>? <a href="#handler-onclose" title="handler-onclose">onclose</a>;
+  attribute <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandler</a> <a href="#handler-onclick" title="handler-onclick">onclick</a>;
+  attribute <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandler</a> <a href="#handler-onshow" title="handler-onshow">onshow</a>;
+  attribute <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandler</a> <a href="#handler-onerror" title="handler-onerror">onerror</a>;
+  attribute <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandler</a> <a href="#handler-onclose" title="handler-onclose">onclose</a>;
+
+  readonly attribute DOMString <a href="#dom-notification-title" title="dom-Notification-title">title</a>;
+  readonly attribute <a href="#notificationdirection">NotificationDirection</a> <a href="#dom-notification-dir" title="dom-Notification-dir">dir</a>;
+  readonly attribute DOMString <a href="#dom-notification-dir" title="dom-Notification-dir">lang</a>;
+  readonly attribute DOMString <a href="#dom-notification-dir" title="dom-Notification-dir">body</a>;
+  readonly attribute DOMString <a href="#dom-notification-dir" title="dom-Notification-dir">tag</a>;
+  readonly attribute DOMString <a href="#dom-notification-dir" title="dom-Notification-dir">icon</a>;
 
   void <a href="#dom-notification-close" title="dom-Notification-close">close</a>();
 };
 
 dictionary <dfn id="notificationoptions">NotificationOptions</dfn> {
-  <a href="#notificationdirection">NotificationDirection</a> titleDir;
+  <a href="#notificationdirection">NotificationDirection</a> dir = "auto";
+  DOMString lang = "";
   DOMString body;
-  <a href="#notificationdirection">NotificationDirection</a> bodyDir;
   DOMString tag;
-  DOMString iconUrl;
+  DOMString icon;
 };
 
 enum <dfn id="notificationpermission">NotificationPermission</dfn> {
@@ -446,10 +550,6 @@
   "rtl"
 };</pre>
 
-<p class="XXX">Web IDL is
-<a href="http://lists.w3.org/Archives/Public/public-script-coord/2012AprJun/0222.html">not yet updated</a>
-to allow for static attributes.
-
 <p>The
 <dfn id="dom-notification" title="dom-Notification"><code>Notification(<var title="">title</var>, <var title="">options</var>)</code></dfn>
 constructor must run these steps:
@@ -460,38 +560,41 @@
  <code><a href="#notification">Notification</a></code> object.
 
  <li><p>Set <var title="">notification</var>'s <a href="#title">title</a> to
- <var title="">title</var>,
- <a class="external" href="http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode" title="convert a DOMString to a sequence of Unicode characters">converted to Unicode</a>.
-
- <li><p>If <var title="">options</var> is not omitted and its
- <code title="">titleDir</code> member is not null, set
- <var title="">notification</var>'s <a href="#title-direction">title direction</a> to
- <code title="">titleDir</code>.
+ <var title="">title</var>.
 
- <li><p>If <var title="">options</var> is not omitted and its
- <code title="">body</code> is not null, set <var title="">notification</var>'s
- <a href="#body">body</a> to <code title="">body</code>,
- <a class="external" href="http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode" title="convert a DOMString to a sequence of Unicode characters">converted to Unicode</a>.
+ <li><p>Set <var title="">notification</var>'s <a href="#direction">direction</a> to
+ <var title="">options</var>'s <code title="">dir</code>.
 
- <li><p>If <var title="">options</var> is not omitted and its
- <code title="">bodyDir</code> member is not null, set
- <var title="">notification</var>'s <a href="#body-direction">body direction</a> to
- <code title="">bodyDir</code>.
+ <li><p>If <var title="">options</var>'s <code title="">lang</code> is a valid
+ BCP 47 language tag, or the empty string, set
+ <var title="">notification</var>'s <a href="#language">language</a> to
+ <var title="">options</var>'s <code title="">lang</code>, or set it to the empty
+ string otherwise. <a href="#refsLANG">[LANG]</a>
 
- <li><p>If <var title="">options</var> is not omitted and its
- <code title="">tag</code> is not null, set <var title="">notification</var>'s
- <a href="#tag">tag</a> to <code title="">tag</code>.
+ <li><p>Set <var title="">notifications</var>'s <a href="#origin">origin</a> to the
+ current <a class="external" href="https://tools.ietf.org/html/rfc6454#section-4">origin</a>.
 
- <li><p>If <var title="">options</var> is not omitted and its
- <code title="">iconUrl</code> is not null, set <var title="">notification</var>'s
- <a href="#icon-url">icon URL</a> to <code title="">iconUrl</code>.
+ <li><p>If <var title="">options</var>'s <code title="">body</code> is present,
+ set <var title="">notification</var>'s <a href="#body">body</a> to
+ <code title="">body</code>.
+
+ <li><p>If <var title="">options</var>'s <code title="">tag</code> is present, set
+ <var title="">notification</var>'s <a href="#tag">tag</a> to <code title="">tag</code>.
+
+ <li><p>If <var title="">options</var>'s <code title="">icon</code> is present,
+ <a class="external" href="https://url.spec.whatwg.org/#concept-url-parser" title="concept-url-parser">parse</a>
+ <code title="">icon</code> using the <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url">API base URL</a>
+ specified by the <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#entry-settings-object">entry settings object</a>, and if that
+ does not return failure, set <var title="">notification</var>'s <a href="#icon-url">icon URL</a> to the
+ return value. (Otherwise <a href="#icon-url">icon URL</a> is not set.)
 
  <li><p>Return <var title="">notification</var>, but continue running these
  steps asynchronouusly.
 
  <li><p>If the notification platform supports icons, the user agent may
- start <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch" title="fetch">fetching</a>
- <var title="">notification</var>'s <a href="#icon-url">icon URL</a> at this point.
+ start <a class="external" href="https://html.spec.whatwg.org/multipage/infrastructure.html#fetch" title="fetch">fetching</a>
+ <var title="">notification</var>'s <a href="#icon-url">icon URL</a> at this point, if
+ <a href="#icon-url">icon URL</a> is set.
 
  <li><p>Run the <a href="#show-steps">show steps</a> for <var title="">notification</var>.
 </ol>
@@ -511,14 +614,14 @@
 
  <li><p>If <var title="">permission</var> is "<code title="">default</code>",
  ask the user whether showing notifications for the current
- <a class="external" href="http://tools.ietf.org/html/rfc6454#section-4">origin</a> is acceptable. If it is, set
+ <a class="external" href="https://tools.ietf.org/html/rfc6454#section-4">origin</a> is acceptable. If it is, set
  <var title="">permission</var> to "<code title="">granted</code>", or
  "<code title="">denied</code>" otherwise.
 
- <li><p><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task">Queue a task</a> to set
+ <li><p><a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">Queue a task</a> to set
  <a href="#permission-0">permission</a> to <var title="">permission</var> and invoke
  <var title="">callback</var> with <var title="">permission</var> as single
- argument.
+ argument if <var title="">callback</var> is given.
 </ol>
 
 <p class="warning">In designing the platform notifications are the one
@@ -526,16 +629,16 @@
 for other APIs should not use this pattern and instead employ one of the
 <a href="http://robert.ocallahan.org/2011/06/permissions-for-web-applications_30.html">many more suitable alternatives</a>.
 
-<p>The following are the <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers">event handlers</a>
+<p>The following are the <a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers">event handlers</a>
 (and their corresponding
-<a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handler-event-type" title="event handler event type">event handler event types</a>)
+<a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type" title="event handler event type">event handler event types</a>)
 that must be supported as attributes by the <code><a href="#notification">Notification</a></code> object.
 
 <table>
  <thead>
   <tr>
-   <th><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers" title="event handlers">event handler</a>
-   <th><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handler-event-type">event handler event type</a>
+   <th><a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers" title="event handlers">event handler</a>
+   <th><a class="external" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type">event handler event type</a>
  <tbody>
   <tr>
    <td><dfn id="handler-onclick" title="handler-onclick"><code>onclick</code></dfn>
@@ -555,77 +658,64 @@
 must run the <a href="#close-steps">close steps</a> for the
 <a href="#concept-notification" title="concept-notification">notification</a>.
 
+<p>The <dfn id="dom-notification-title" title="dom-Notification-title"><code>title</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#title">title</a>.
 
+<p>The <dfn id="dom-notification-dir" title="dom-Notification-dir"><code>dir</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#direction">direction</a>.
+
+<p>The <dfn id="dom-notification-lang" title="dom-Notification-lang"><code>lang</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#language">language</a>.
+
+<p>The <dfn id="dom-notification-body" title="dom-Notification-body"><code>body</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#body">body</a> and the empty
+string otherwise.
+
+<p>The <dfn id="dom-notification-tag" title="dom-Notification-tag"><code>tag</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#tag">tag</a> and the empty
+string otherwise.
+
+<p>The <dfn id="dom-notification-icon" title="dom-Notification-icon"><code>icon</code></dfn> attribute must return the
+<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#icon-url">icon URL</a>,
+<a class="external" href="https://url.spec.whatwg.org/#concept-url-serializer" title="concept-url-serializer">serialized</a>, and the
+empty string otherwise.
 
 
 
-<h2 id="rendering"><span class="secno">6 </span>Rendering</h2>
-
-<p>This section is written in terms equivalent to those used in the
-Rendering section of HTML. <a href="#refsHTML">[HTML]</a>
-
-<!-- keep this in sync with
-     http://www.whatwg.org/specs/web-apps/current-work/#text-rendered-in-native-user-interfaces -->
+<h2 id="examples"><span class="secno">6 </span>Examples</h2>
 
-<p>User agents are expected to honor the Unicode semantics of the text of a
-<a href="#concept-notification" title="concept-notification">notification</a>'s <a href="#title">title</a>
-and <a href="#body">body</a>. Each is expected to be treated as an independent set
-of one or more bidirectional algorithm paragraphs when displayed, as defined
-by the bidirectional algorithm's rules P1, P2, and P3, including, for
-instance, supporting the paragraph-breaking behaviour of
-U+000A LINE FEED (LF) characters. For each paragraph of the
-<a href="#title">title</a> and <a href="#body">body</a>, the
-<a href="#concept-notification" title="concept-notification">notification</a>'s
-<a href="#title-direction">title direction</a> and <a href="#body-direction">body direction</a> respectively
-provide the higher-level override of rules P2 and P3 if they have a value
-other than "<code title="">auto</code>".
-<a href="#refsBIDI">[BIDI]</a>
+<h3 id="using-events"><span class="secno">6.1 </span>Using events</h3>
+
+<p><code><a href="#notification">Notification</a></code> objects dispatch events during their lifecycle,
+which developers can use to generate desired behaviors.
+
+<p>The <code title="event-show">show</code> event dispatches when the
+<a href="#concept-notification" title="concept-notification">notification</a> is shown to the user
+&mdash; this may be at some time after the notification is created in the
+case of limited display space and a queue.
+
+<p>In the following example, this event is used to guarantee that regardless
+of when the notification is shown, it is displayed for only 15 seconds.
+
+<pre class="example">var notification = new Notification("New Email Received", { icon: "mail.png" })
+notification.onshow = function() { setTimeout(notification.close, 15000) }</pre>
+
+<p>The <code title="event-close">close</code> event dispatches when the
+notification is dismissed by the user. Developers may use this event to
+perform actions when notifications are acknowledged.
+
+<p>In the following example, when a meeting reminder notification is
+acknowledged, the application suppresses other forms of reminders.
+
+<pre class="example">var notification = new Notification("Meeting about to begin", { icon: "calendar.gif", body: "Room 101" })
+notification.onclose = function(event) { cancelReminders(event) }</pre>
 
 
-<h2 id="examples"><span class="secno">7 </span>Examples</h2>
-
-<h3 id="using-events"><span class="secno">7.1 </span>Using events</h3>
-
-<p>
-	Notification objects dispatch events during their lifecycle, which authors can use
-	to generate desired behaviors.
-      </p>
-      <p>
-	The <code>show</code> event occurs when the notification is shown to the user --
-	this may be at some time after the notification is created in the case
-	of limited display space and a queue.
-      </p>
-
-      <p>
-	In the following example, this event is used to guarantee that regardless of when
-	the notification is shown, it is displayed for only 15 seconds.
-      </p>
-
-<pre class="example">new Notification("New Email Received",
-                 { iconUrl: "mail.png",
-                   onshow: function() { setTimeout(notification.close(), 15000); }
-                 });</pre>
-
-<p>The <code>close</code> events occurs when the notification is dismissed by the user.
-	Authors may use this event to perform actions when notifications are acknowledged.
-
-<p>
-	In the following example, when a meeting reminder notification is acknowledged, the
-	application suppresses other forms of reminders.
-      </p>
-
-<pre class="example">new Notification("Meeting about to begin",
-                 { iconUrl: "calendar.gif",
-                   body: "Room 101",
-                   onclose: function() { cancelReminders(event); }
-                 });</pre>
-
-
-<h3 id="tags-example"><span class="secno">7.2 </span>Using the <code title="">tag</code> member for multiple instances</h3>
+<h3 id="tags-example"><span class="secno">6.2 </span>Using the <code title="">tag</code> member for multiple instances</h3>
 
 <p>Web applications frequently operate concurrently in multiple instances, such as when a
 	user opens a mail application in multiple browser tabs.  Since the desktop is a shared
-	resource, Web Notifications provides a way for these instances to easily coordinate, by
+	resource, the notifications API provides a way for these instances to easily coordinate, by
 	using the <code title="">tag</code> member.
 
 <p>Notifications which represent the same conceptual event can be tagged in the same way,
@@ -646,7 +736,7 @@
 <p>
 	The result of this situation, if the user agent follows the algorithms here, is a <strong>single</strong> notification "New mail from John Doe".
 
-<h3 id="using-the-tag-member-for-a-single-instance"><span class="secno">7.3 </span>Using the <code title="">tag</code> member for a single instance</h3>
+<h3 id="using-the-tag-member-for-a-single-instance"><span class="secno">6.3 </span>Using the <code title="">tag</code> member for a single instance</h3>
 
 <p>The <code title="">tag</code> member can also be used by a single instance of an application to keep its
 	notifications as current as possible as state changes.
@@ -668,32 +758,56 @@
 	a similar result could be achieved using the
 	<code title="dom-Notification-close"><a href="#dom-notification-close">close()</a></code> method.
 
+
+
 <h2 class="no-num" id="references">References</h2>
 
 <div id="anolis-references"><dl><dt id="refsBIDI">[BIDI]
 <dd><cite><a href="http://www.unicode.org/reports/tr9/">Unicode Bidirectional Algorithm</a></cite>, Mark Davis. Unicode Consortium.
 
 <dt id="refsDOM">[DOM]
-<dd><cite><a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html">DOM4</a></cite>, Anne van Kesteren, Aryeh Gregor and Ms2ger. W3C.
+<dd><cite><a href="https://dom.spec.whatwg.org/">DOM</a></cite>, Anne van Kesteren, Aryeh Gregor and Ms2ger. WHATWG.
 
 <dt id="refsHTML">[HTML]
-<dd><cite><a href="http://www.w3.org/TR/html5/">HTML5</a></cite>, Ian Hickson. W3C.
+<dd><cite><a href="https://html.spec.whatwg.org/multipage/">HTML</a></cite>, Ian Hickson. WHATWG.
+
+<dt id="refsLANG">[LANG]
+<dd><cite><a href="https://tools.ietf.org/html/bcp47">Tags for Identifying Languages; Matching of Language Tags</a></cite>, Addison Phillips and Mark Davis. IETF.
 
 <dt id="refsRFC2119">[RFC2119]
-<dd><cite><a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a></cite>, Scott Bradner. IETF.
+<dd><cite><a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a></cite>, Scott Bradner. IETF.
+
+<dt id="refsURL">[URL]
+<dd><cite><a href="https://url.spec.whatwg.org/">URL</a></cite>, Anne van Kesteren. WHATWG.
+
+<dt id="refsWEBIDL">[WEBIDL]
+<dd><cite><a href="https://heycam.github.io/webidl/">Web IDL</a></cite>, Cameron McCormack. W3C.
 
 </dl></div>
 
+
+
 <h2 class="no-num" id="acknowledgments">Acknowledgments</h2>
 
 <p>Thanks to
 Aharon (Vladimir) Lanin,
 Alex Russell,
+David H&aring;s&auml;ther,
 Doug Turner,
 Drew Wilson,
+Jake Archibald,
 Edward O'Connor,
+Frederick Hirsch,
 Ian Hickson,
 James Graham,
-Jon Lee, and
-Jonas Sicking
+Jon Lee,
+Jonas Sicking,
+Michael Cooper,
+Michael Henretty,
+Olli Pettay, and
+Simon Pieters
 for being awesome.
+
+Special thanks to Anne van Kesteren for his continuing work on the
+WHATWG's <a href="http://notifications.spec.whatwg.org/">Notifications
+API Standard</a>.