Skip to content

Commit

Permalink
Fix #744: clarify control groups and control group owner objects
Browse files Browse the repository at this point in the history
This attempts to clarify:

- How control groups are created (previously we were just told that
  focusable areas belong to them)
- The relationship between control groups and control group owners

It also removes the redundant distinction between "control group owners"
and "control group owner objects", settling on the latter since it was
more prevalent.
  • Loading branch information
domenic committed Feb 26, 2016
1 parent 5239b84 commit 2a88493
Showing 1 changed file with 25 additions and 17 deletions.
42 changes: 25 additions & 17 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -56864,7 +56864,7 @@ dictionary <dfn>RelatedEventInit</dfn> : <span>EventInit</span> {

<ol>

<li><p>If for some reason <var>subject</var> is not a <span>control group owner</span>
<li><p>If for some reason <var>subject</var> is not a <span>control group owner object</span>
at this point, or if it is <span>inert</span>, abort these steps.</p></li>

<li>
Expand Down Expand Up @@ -71298,10 +71298,9 @@ END:VCARD</pre>
container</span> essentially acts merely as a placeholder for its <span>nested browsing
context</span>'s <span>active document</span>.</p>

<p>Each <span>focusable area</span> belongs to a <dfn>control group</dfn>. Each <span>control group</span> has
an <dfn data-x="control group owner">owner</dfn>. <span data-x="control group owner">Control group
owners</span> are <dfn data-x="control group owner object">control group owner objects</dfn>. The
following are <span data-x="control group owner object">control group owner objects</span>:</p>
<hr>

<p>The following create <dfn data-x="control group">control groups</dfn>:

<ul class="brief">

Expand All @@ -71313,13 +71312,17 @@ END:VCARD</pre>

</ul>

<p>Each <span>control group owner object</span> owns one <span>control group</span> (though that
group might be empty).</p>
<p>The corresponding <code>Document</code> object or <code>dialog</code> element is the created
<span>control group</span>'s <dfn data-x="control group owner object">owner object</dfn>. (There
is always a 1:1 mapping of <span data-x="control group">control groups</span> to <span
data-x="control group owner object">control group owner objects</span>.)</p>

<p>If the <span>DOM anchor</span> of a <span>focusable area</span> is a <span>control group owner
object</span>, then that <span>focusable area</span> belongs to that <span>control group owner
object</span>'s <span>control group</span>. Otherwise, the <span>focusable area</span> belongs to its
<span>DOM anchor</span>'s nearest ancestor <span>control group owner object</span>.</p>
<p>Each <span>focusable area</span> belongs to a single <span>control group</span> as follows. If
the <span>DOM anchor</span> of a <span>focusable area</span> is a <span>control group
owner object</span>, then that <span>focusable area</span> belongs to that <span>control group
owner object</span>'s <span>control group</span>. Otherwise, the <span>focusable area</span>
belongs to its <span>DOM anchor</span>'s nearest ancestor <span>control group owner
object</span>'s <span>control group</span>.</p>

<div class="example">

Expand All @@ -71333,6 +71336,9 @@ END:VCARD</pre>

</div>

<p class="note">It is possible for a <span>control group</span> to be empty, i.e. for it to have
no <span data-x="focusable area">focusable areas</span>.</p>

<p>An element is <dfn data-x="expressly inert control">expressly inert</dfn> if it is
<span>inert</span> but it is not a <span>control group owner object</span> and its nearest
ancestor <span>control group owner object</span> is not <span>inert</span>.</p>
Expand Down Expand Up @@ -71443,7 +71449,8 @@ END:VCARD</pre>

<p>Otherwise, if <var>current object</var> is a <span>focusable area</span>, let <var>current
object</var> be that <span>focusable area</span>'s <span>control group</span>'s <span
data-x="control group owner">owner</span>, and return to the step labeled <i>loop</i>.</p>
data-x="control group owner object">owner object</span>, and return to the step labeled
<i>loop</i>.</p>

<p>Otherwise, if <var>current object</var> is a <code>Document</code> in a <span>nested browsing
context</span>, let <var>current object</var> be its <span>browsing context container</span>,
Expand Down Expand Up @@ -71815,8 +71822,8 @@ END:VCARD</pre>

<p>Otherwise, if <var>old focus target</var> is a <span>focusable area</span>, then let <var>new
focus target</var> be the first <span>focusable area</span> of its <span>control group</span>
(if the <span>control group owner</span> is a <code>Document</code>, this will always be a
viewport).</p>
(if the <span>control group owner object</span> is a <code>Document</code>, this will always be
a viewport).</p>

<p>Otherwise, let <var>new focus target</var> be null.</p>

Expand Down Expand Up @@ -71999,14 +72006,15 @@ END:VCARD</pre>

<li>

<p>If <var>entry</var> is a <span>focusable area</span>: Designate <var>entry</var> as the <span>focused area of the control group</span>. If its <span>control
group</span>'s <span data-x="control group owner">owner</span> is also a <span>dialog group
<p>If <var>entry</var> is a <span>focusable area</span>: Designate <var>entry</var> as the
<span>focused area of the control group</span>. If its <span>control group</span>'s <span
data-x="control group owner object">owner object</span> is also a <span>dialog group
manager</span>, then let there be no designated <span data-x="focused dialog of the dialog
group">focused dialog</span> in that <span>dialog group</span>.</p>

<p class="note">It is possible for <var>entry</var> to be both a <code>dialog</code>
element and a <span>focusable area</span>, in which case it is its own <span>control group
owner</span>.</p>
owner object</span>.</p>

</li>

Expand Down

0 comments on commit 2a88493

Please sign in to comment.