Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update to focus placement for modal dialogs #3214

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 70 additions & 38 deletions techniques/failures/F85.html
Original file line number Diff line number Diff line change
@@ -1,46 +1,78 @@
<!DOCTYPE html><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>Failure of Success Criterion 2.4.3 due to using dialogs or menus that are not adjacent to their trigger control in the sequential navigation order</title><link rel="stylesheet" type="text/css" href="../../css/sources.css" class="remove"/></head><body><h1>Failure of Success Criterion 2.4.3 due to using dialogs or menus that are not adjacent to their trigger control in the sequential navigation order</h1><section class="meta"><p class="id">ID: F85</p><p class="technology">Technology: failures</p><p class="type">Type: Failure</p></section><section id="applicability"><h2>When to Use</h2>
<!DOCTYPE html>
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Failure of Success Criterion 2.4.3 due to using dialogs or menus that are not adjacent to their trigger control in the sequential navigation order</title>
<link rel="stylesheet" type="text/css" href="../../css/editors.css" class="remove"/>
</head>
<body>
<h1>Failure of Success Criterion 2.4.3 due to using dialogs or menus that are not adjacent to their trigger control in the sequential navigation order</h1>
<section class="meta">
<p class="id">ID: F85</p>
<p class="technology">Technology: failures</p>
<p class="type">Type: Failure</p>
</section>
<section id="applicability">
<h2>When to Use</h2>
<p>All technologies.</p>
</section><section id="description"><h2>Description</h2>
<p>This describes the failure condition that results when a Web page opens a dialog or menu interface component embedded on the page in a way that makes it difficult for a keyboard user to operate because of its position in the sequential navigation order. When the user opens the dialog or menu embedded on the page by activating a button or link, their next action will be to interact with the dialog or menu. If focus is not set to the dialog or menu, and it is not adjacent to the trigger control in the sequential navigation order, it will be difficult for the keyboard user to operate the dialog or menu.</p>
</section><section id="examples"><h2>Examples</h2>
<section class="example">
<h3>Adding a dialog or menu embedded on the page to the end of the sequential navigation order</h3>

<p>When a DHTML menu or dialog is activated, it is created dynamically, positioned visually near the trigger, and appended to the end of the DOM. Because it is appended to the end of the DOM, it is at the end of the sequential navigation order. The user must tab through the rest of the web page before they can interact with the dialog or menu.</p>

</section>
<section id="description">
<h2>Description</h2>
<p>This describes the failure condition that results when a web page opens a dialog or menu interface component embedded on the page in a way that makes it difficult for a keyboard user to operate because of its position in the sequential navigation order. When the user opens the dialog or menu embedded on the page by activating a button or link, their next action will be to interact with the dialog or menu. If focus is not set to the dialog or menu, and it is not adjacent to the trigger control in the sequential navigation order, it will be difficult for the keyboard user to operate the dialog or menu.</p>
fstrr marked this conversation as resolved.
Show resolved Hide resolved

<div role="note">
<p>Dismissing a dialog or menu means to close it without taking any action on it. For example: a modal dialog opens on a web page and displays a sign-up form for a mailing list. A user dismisses the dialog by either pressing a "close" button or using the <kbd>Escape</kbd> key.</p>
</div>

<div role="note">
<p>Sometimes it's not possible to return focus to the control the user activated to open a dialog. For example: a blog post has a list of tags, each tag containing a delete button. Pressing a delete button opens a modal dialog that asks the user to confirm the deletion. On confirming the deletion, the tag is deleted, the modal dialog closes, and focus is placed on the next tag in the list of tags. Placing focus onto a different, but logical, control is not a failure of Success Criterion 2.4.3.</p>
</div>
</section>
<section id="examples">
<h2>Examples</h2>
<section class="example">
<h3>Adding a dialog to the page at the end of the sequential navigation order</h3>
<p>A non native HTML dialog is created, with its code at the end of the DOM (Document Object Model). The dialog is visually positioned above the content of the page and the user's focus isn't moved to the dialog. Because the dialog's code is at the end of the DOM, it is at the end of the keyboard navigation order. Because the user's focus isn't manage, they must tab through the rest of the web page before they can interact with the dialog or menu.</p>
</section>
<section class="example">
<h3>Setting focus to the document after dismissing a menu embedded on the page</h3>

<p>When a menu is dismissed, it is removed or hidden from the web page and focus is set to the document. The user must tab from the beginning of the navigation sequence to reach the point from which the menu was opened.</p>

<h3>Setting focus to the document after dismissing a menu embedded on the page</h3>
<p>When a menu is dismissed, it is removed or hidden from the web page and focus is set to the document. The user must tab from the beginning of the navigation sequence to reach the point from which the menu was opened.</p>
</section>
</section><section id="tests"><h2>Tests</h2>
<section class="procedure"><h3>Procedure</h3>
<p>For each menu or dialog embedded on a Web page that is opened via a trigger control:</p>
</section>
<section id="tests">
<h2>Tests</h2>
<section class="procedure">
<h3>Procedure</h3>
<p>For each menu or dialog on a web page that is opened via a trigger control:</p>
<ol>
<li>
<p>Activate the trigger control via the keyboard.</p>
<ul>
<li>Check whether focus is in the menu or dialog.</li>
<li>Check whether advancing the focus in the sequential navigation order puts focus in the menu or dialog.</li>
</ul>
</li>
<li>
<p>Dismiss the menu or dialog.</p>
<ul>
<li>Check whether focus is on the trigger control.</li>
<li>Check whether advancing the focus backwards in the sequential navigation order puts focus in the trigger control.</li>
</ul>
</li>
</ol>
<li>
<p>Activate the trigger control via the keyboard.</p>
<ul>
<li>Check whether focus is in the menu or dialog.</li>
<li>Check whether moving the focus forwards once in the sequential navigation order puts focus in the menu or dialog.</li>
mbgower marked this conversation as resolved.
Show resolved Hide resolved
</ul>
</li>
<li>
<p>Dismiss the menu or dialog</p>
<ul>
<li>Check whether focus is on the trigger control.</li>
<li>If focus needs to be placed on a different control, check whether that different control is logical.</li>
</ul>
</li>
</ol>
</section>
<section class="results"><h3>Expected Results</h3>
<ul>
<li>If both points under step 1 are false, then this failure condition applies and the content fails this success criterion.</li>
<li>If both points under step 2 are false, then this failure condition applies and the content fails this success criterion.</li>
<section class="results">
<h3>Expected Results</h3>
<ul>
<li>If both points under step 1 are false, then this failure condition applies and the content fails this success criterion.</li>
<li>If both points under step 2 are false, then this failure condition applies and the content fails this success criterion.</li>
</ul>
</section>
</section><section id="related"><h2>Related Techniques</h2><ul>
<li><a href="../client-side-script/SCR26">SCR26</a></li>
</ul></section></body></html>
</section>
<section id="related">
<h2>Related Techniques</h2>
<ul>
<li><a href="../client-side-script/SCR26">SCR26</a></li>
</ul>
</section>
</body>
</html>