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

Preparing for publication #212

Merged
merged 3 commits into from
Aug 24, 2023
Merged
Show file tree
Hide file tree
Changes from all 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
8 changes: 4 additions & 4 deletions comments-by-guideline-and-success-criterion.md
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ This applies directly as written, and as described in [Intent from Understanding

With these substitutions, it would read:

**2.3.1 Three Flashes or Below Threshold:** <INS>**[[Non-web documents](#document) or [software](#software)]**</INS> do not contain anything that flashes more than three times in any one second period, or the [flash](https://www.w3.org/TR/WCAG22/#dfn-flash) is below the [general flash and red flash thresholds](#dfn-general-flash-and-red-flash-thresholds). (Level A)
**2.3.1 Three Flashes or Below Threshold:** <INS>**[[Non-web documents](#document) or [software](#software)]**</INS> do not contain anything that flashes more than three times in any one second period, or the [flash](https://www.w3.org/TR/WCAG22/#dfn-flashes) is below the [general flash and red flash thresholds](#dfn-general-flash-and-red-flash-thresholds). (Level A)

<div class="note">

Expand Down Expand Up @@ -745,7 +745,7 @@ This applies directly as written, and as described in [Intent from Understanding

With these substitutions, it would read:

**3.1.1 Language of Page:** The default [human language](https://www.w3.org/TR/WCAG22/#dfn-human-language) of <INS>**[[non-web documents](#document) or [software](#software)]**</INS> can be [programmatically determined](#dfn-programmatically-determined). (Level A)
**3.1.1 Language of Page:** The default [human language](https://www.w3.org/TR/WCAG22/#dfn-human-language-s) of <INS>**[[non-web documents](#document) or [software](#software)]**</INS> can be [programmatically determined](#dfn-programmatically-determined). (Level A)

<div class="note">

Expand All @@ -762,7 +762,7 @@ This applies directly as written, and as described in [Intent from Understanding

With these substitutions, it would read:

**3.1.2 Language of Parts:** The [human language](https://www.w3.org/TR/WCAG22/#dfn-human-language) of each passage or phrase in the <INS>**[[non-web document](#document) or [software](#software)]**</INS> can be [programmatically determined](#dfn-programmatically-determined) except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text. (Level AA)
**3.1.2 Language of Parts:** The [human language](https://www.w3.org/TR/WCAG22/#dfn-human-language-s) of each passage or phrase in the <INS>**[[non-web document](#document) or [software](#software)]**</INS> can be [programmatically determined](#dfn-programmatically-determined) except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text. (Level AA)

<div class="note">

Expand Down Expand Up @@ -942,7 +942,7 @@ With these substitutions, it would read:
Start and end tags that are missing a critical character in their formation, such as a closing angle bracket or a mismatched attribute value quotation mark are not complete.</div>
<div class="note">

Markup is not always available to [assistive technologies](#dfn-assistive-technology) or to user selectable [user agents](user-agent) such as browsers. Software sometimes uses markup languages internally for persistence of the software user interface, in ways where the markup is never available to assistive technology (either directly or through a document object model (DOM)), or to a user agent (such as a browser). In such cases, conformance to this provision would have no impact on accessibility as it can have for web content where it is exposed.</div>
Markup is not always available to [assistive technologies](#dfn-assistive-technology) or to user selectable [user agents](#user-agent) such as browsers. Software sometimes uses markup languages internally for persistence of the software user interface, in ways where the markup is never available to assistive technology (either directly or through a document object model (DOM)), or to a user agent (such as a browser). In such cases, conformance to this provision would have no impact on accessibility as it can have for web content where it is exposed.</div>

Examples of markup that is separately exposed and available to [assistive technologies](#dfn-assistive-technology) and to [user agents](#user-agent) include: documents encoded in HTML, ODF, and OOXML. In these examples, the markup can be parsed entirely in two ways: (a) by assistive technologies which may directly open the document, (b) by assistive technologies using DOM APIs of user agents for these document formats.

Expand Down
2 changes: 1 addition & 1 deletion introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This document is an update to a W3C [Working Group Note](https://www.w3.org/2005

The 2013 WCAG2ICT has been relied upon in regulations and legislation. One example is EN 301 549[^1] (Europe) and other standards that reference or incorporate EN 301 549 (e.g., India, Kenya, Australia). Another example is Section 508 (U.S.) [Application of WCAG 2.0 to Non-Web ICT](https://www.federalregister.gov/documents/2017/01/18/2017-00395/information-and-communication-technology-ict-standards-and-guidelines#h-36), which looked to WCAG2ICT for detailed direction with providing specific guidance and exceptions to particular criteria from being applied to non-web technology. Section 508 incorporated by reference WCAG as the [Accessibility Standard applicable to non-web documents](https://www.access-board.gov/ict/#E205.4) and requires [WCAG Conformance for non-web software](https://www.access-board.gov/ict/#E207.2).

[^1]: EN 301 549 [V3.2.1]([https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf) 2.2 Informative references, p. 13 \[i26].
[^1]: EN 301 549 [V3.2.1](https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf) 2.2 Informative references, p. 13 \[i26].

### Guidance in this Document

Expand Down
2 changes: 1 addition & 1 deletion status-of-this-document.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
This is an Editors' Draft [change to First Public Working Draft for publication] of Guidance on Applying WCAG 2.2 to Non-Web Information and Communications Technologies (WCAG2ICT). The intent of this work is to update the existing guidance based on new WCAG 2.1 and 2.2 success criteria.
This is a Technical Report on Applying WCAG 2.2 to Non-Web Information and Communications Technologies (WCAG2ICT). The intent of this work is to update the existing guidance based on new WCAG 2.1 and 2.2 success criteria.

The current draft includes guidance for WCAG 2.1 success criteria. Guidance on WCAG 2.2 success criteria will be added later this year as WCAG 2.2 becomes a W3C Recommendation. The next draft will also address open issues on WCAG 2.0 criteria.

Expand Down
60 changes: 57 additions & 3 deletions wcag2ict.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,15 @@ function prepSc(sc) {
prepSec(sc, "sc");
}

function slugify(string) {
return string
.replace(/\s/g, '-')
.replace(/[%()=:.,!#$@"'/\\|?*+&]/g, '')
.replace(/^-+|-+$/g, '')
.replace(/-+/g, '-')
.toLowerCase();
}

function prepSec(n) {
var nid = n.id.split(":")[1];
var nsec = document.querySelector('#' + nid);
Expand All @@ -58,7 +67,12 @@ function prepSec(n) {
// insert SC quote after header
var bq = document.createElement("blockquote");
bq.setAttribute("class", "wcag-quote");
bq.innerHTML = n.content;

// Make relative URLs absolute
var content = n.content.replaceAll("#input-purposes", 'https://www.w3.org/TR/WCAG22/#input-purposes');
content = content.replaceAll("#cc5", 'https://www.w3.org/TR/WCAG22/#cc5');

bq.innerHTML = content;
nhead.after(bq);

// insert intent quote at end
Expand All @@ -69,7 +83,40 @@ function prepSec(n) {
intentsec.appendChild(intentheader);
var intentquote = document.createElement("blockquote");
intentquote.setAttribute("class", "wcag-quote");
intentquote.innerHTML = n.intent;

// Clean out xmlns fields
var intent = n.intent.replaceAll(/xmlns:wcag="https:\/\/www.w3.org\/WAI\/GL\/"/g, '');
intent = intent.replaceAll(/xmlns="http:\/\/www.w3.org\/1999\/xhtml"/g, "");

// Add something to help uniqiely identify section IDs
var base_id = slugify(nname);
intent = intent.replaceAll(/<section\s*id="/g, '<section id="' + base_id + '-section-');

// Add missing IDs for headings
for(var heading of intent.matchAll(/<h([345])>(.*?)<\/h[345]>/g)) {
intent = intent.replace(heading[0], '<h' + heading[1] + ' id="' + base_id + "-" + slugify(heading[2]) + '">' + heading[2] + '</h' + heading[1] + '>');
}

// Remove duplicate IDs
for(var replaceId of intent.matchAll(/"(inactive-controls|figure-grey-button-and-text|benefits)"/g)) {
intent = intent.replace(replaceId[0], base_id + "-" + replaceId[1]);
}

// Make relative URLs absolute
intent = intent.replaceAll('../../techniques/general/G183.html', 'https://www.w3.org/WAI/WCAG22/Techniques/general/G183.html');
intent = intent.replaceAll('https://w3c.github.io/personalization-semantics/content/', 'https://www.w3.org/TR/adapt-symbols/');
intent = intent.replaceAll('../22/focus-appearance-minimum.html', 'https://www.w3.org/TR/WCAG22/#focus-appearance');
intent = intent.replaceAll('../../guidelines/sc/20/pause-stop-hide.html', 'https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide');
intent = intent.replaceAll('../21/target-size-enhanced.html', 'https://www.w3.org/WAI/WCAG22/Understanding/target-size-enhanced');
intent = intent.replaceAll('relative-luminance.html', 'https://www.w3.org/WAI/WCAG22/Understanding/target-size-enhanced');
intent = intent.replaceAll('#status-examples', 'https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html#status-examples');
intent = intent.replaceAll('#resources', 'https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum#resources');
intent = intent.replaceAll('#excepted-examples', 'https://www.w3.org/WAI/WCAG22/Understanding/status-messages#excepted-examples');
intent = intent.replaceAll('https://w3c.github.io/html-aam/#accessible-name-and-description-computation', 'https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation');
intent = intent.replaceAll('http://https://www.w3.org/WAI/tutorials/carousels', 'https://www.w3.org/WAI/tutorials/carousels')
intent = intent.replaceAll(/<a href="(?!http)/g, '<a href="https://www.w3.org/WAI/WCAG22/Understanding/');

intentquote.innerHTML = intent;
intentsec.appendChild(intentquote);
var subsec = nsec.querySelectorAll("section")[1];
if (subsec) nsec.insertBefore(intentsec, subsec);
Expand Down Expand Up @@ -101,7 +148,14 @@ function prepTerm(n) {
var nhead = nheader.parentNode;
var bq = document.createElement("blockquote");
bq.setAttribute("class", "wcag-quote");
bq.innerHTML = n.definition;

// Make relative URLs absolute
var definition = n.definition.replaceAll("#cc1", 'https://www.w3.org/TR/WCAG22/#cc1');
definition = definition.replaceAll("#cc4", 'https://www.w3.org/TR/WCAG22/#cc4');
definition = definition.replaceAll("#cc5", 'https://www.w3.org/TR/WCAG22/#cc5');
definition = definition.replaceAll(/<a href="(?!http)/g, '<a href="https://www.w3.org/WAI/WCAG22/Understanding/');

bq.innerHTML = definition;
nhead.after(bq);
}
}
Expand Down
Loading