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

Eleventy build: Support generating WCAG 2.1 docs from main branch #4007

Merged
merged 24 commits into from
Nov 20, 2024

Conversation

kfranqueiro
Copy link
Contributor

@kfranqueiro kfranqueiro commented Aug 7, 2024

Background

There has long been interest in re-generating updated versions of the informative docs for WCAG 2.1. Previously, this relied upon a separate WCAG-2.1 branch, but the ideal outcome is to be able to build directly from main, altering/pruning content as appropriate.

Changes

This adds more functionality to the Eleventy-based build system to support building content targeting WCAG 2.1 in addition to 2.2, specifically when WCAG_VERSION=21 is set in environment variables:

  • Guidelines are pulled from the web so as to not pick up information and alterations from newer WCAG versions (e.g. addition of new SC and removal of 4.1.1)
    • Parsing/processing is augmented as necessary to support both source and pre-processed guidelines
  • Acknowledgements are also pulled from the web, pinned to 2.1
  • target-size-enhanced is output to target-size for 2.1
  • Detects what techniques only apply to later WCAG versions, and prunes them from associations
  • Avoids emitting pages for techniques and understanding documents that exclusively pertain to later WCAG versions
  • Further updates hard-coded version numbers in titles and level-1 headings, as well as throughout pages (especially refer-to-wcag) via Liquid expressions
  • Adds support for setting both note and wcagXY class on the same element
  • Conditionalizes a couple of 2.2-specific notes that were not within elements with wcag22 class
  • Unchanged but worth noting: Obsolete technique data includes version information, so anything marked obsolete as of 2.2 will not contain an obsolete banner when publishing for 2.1

Preview

Do not use the Netlify preview for this, as it always builds 2.2 docs. (I've done a pass to verify that this PR doesn't visibly affect 2.2 output.)

I have set up a preview of this branch on my fork for the lifetime of this PR:

I have done quick-ish passes over both folders to try to spot and resolve any surprises. The Techniques pages largely only changed with respect to Test Rules (due to updated act-mapping.json) or the de-listing of obsolete techniques. I particularly looked over the Understanding pages since those align parallel with the guidelines and seem to have more meaningful updates. It is still possible that I have missed additional cases, e.g. of 2.2-specific wording that isn't properly enclosed in a class="wcag22" element. This ideally warrants a thorough review.

The following Understanding pages inherit notable changes: (checkboxes included for review tracking purposes)

@kfranqueiro kfranqueiro requested a review from iadawn August 7, 2024 22:35
Copy link

netlify bot commented Aug 7, 2024

Deploy Preview for wcag2 ready!

Name Link
🔨 Latest commit d9bd774
🔍 Latest deploy log https://app.netlify.com/sites/wcag2/deploys/673e491f48f9bf000806a9fa
😎 Deploy Preview https://deploy-preview-4007--wcag2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@w3cbot
Copy link

w3cbot commented Aug 7, 2024

kfranqueiro marked as non substantive for IPR from ash-nazg.

@alastc
Copy link
Contributor

alastc commented Aug 12, 2024

I'm fairly sure we didn't include anything 2.2 specific in 2.1 docs without that markup, it was very rare.

@bruce-usab bruce-usab added the Old XML docs Needs transfering to the new docs label Aug 16, 2024
@kfranqueiro kfranqueiro force-pushed the kgf-11ty-21 branch 2 times, most recently from 1c010a2 to 6873aef Compare October 1, 2024 16:50
@kfranqueiro kfranqueiro removed the Old XML docs Needs transfering to the new docs label Oct 1, 2024
@kfranqueiro kfranqueiro changed the title Eleventy build: Add support for generating WCAG 2.1 docs from main branch Eleventy build: Support generating WCAG 2.1 docs from main branch Oct 1, 2024
@alastc alastc requested review from bruce-usab and alastc October 4, 2024 15:22
@kfranqueiro kfranqueiro force-pushed the kgf-11ty-21 branch 2 times, most recently from 94cc984 to e1e813e Compare October 9, 2024 19:53
@stevefaulkner
Copy link

@mbgower - use of color, contrast (minimum), resize text
@patrickhlauke - reflow, non-text contrast, text spacing
@alastc - keyboard (no exception), character key shortcuts, timing adjustable
@scottaohara - three flashes or below threshold, page titled, focus visible
@dbjorge - pointer gestures, label in name, target size
@stevefaulkner - reading level, error identification, labels or instructions
@bruce-usab - parsing, name role value, understanding techniques

@bruce-usab
Copy link
Contributor

bruce-usab commented Nov 1, 2024

Discussed on backlog call 11-1 and review divided up (as above).

@mbgower
Copy link
Contributor

mbgower commented Nov 1, 2024

@kfranqueiro, the files for changed understanding docs (for instance use-of-color) are not generally showing up in the Files changed tab's list; however, I have confirmed that modifications to notes and the addition of paragraphs from 2.2 have been incorporated into the 2.1 preview (e.g., where the note or paragraph is missing from the current 2.1 Understanding doc).

@mbgower
Copy link
Contributor

mbgower commented Nov 1, 2024

@kfranqueiro while the contrast minimum material has been updated, I assume the double-square bracket references in all 3 versions of this understanding document (2.0, 2.1, 2.2) were intended to be linked references, but did not generate properly. It looks like this is covered by #2535 so just flagging again here.

@kfranqueiro
Copy link
Contributor Author

kfranqueiro commented Nov 1, 2024

@kfranqueiro, the files for changed understanding docs (for instance use-of-color) are not generally showing up in the Files changed tab's list; however, I have confirmed that modifications to notes and the addition of paragraphs from 2.2 have been incorporated into the 2.1 preview (e.g., where the note or paragraph is missing from the current 2.1 Understanding doc).

Right, the actual source files for informative docs won't change. The difference is this builds 2.1 docs from main rather than from the variably-out-of-date WCAG-2.1 branch, which is what's responsible for all of the backports, the idea being that updates to informative docs on main will impact both versions. The only thing the WCAG-2.1 branch will still be used for is things directly impacting the TR doc itself.

@kfranqueiro while the contrast minimum material has been updated, I assume the double-square bracket references in all 3 versions of this understanding document (2.0, 2.1, 2.2) were intended to be linked references, but did not generate properly. It looks like this is covered by #2535 so just flagging again here.

Right, this doesn't affect that, and those have been an issue for as long as these docs have existed in their current form; there's a separate PR I opened this Tuesday that addresses as much of that as can currently be addressed with the information available in specref and our local biblio.js.

@mbgower
Copy link
Contributor

mbgower commented Nov 4, 2024

@kfranqueiro I am now reviewing understanding/conformance.

IMO, for both 2.2 and 2.1, "which includes techniques for providing Conforming Alternate Version" should be lower case, to read:

See also Understanding Conforming Alternate Versions which includes techniques for providing conforming alternate versions.

The rationale is that the definition itself (2 paragraphs earlier) is lower case, so while it is fine to leave the heading link in camel case, the final term should be lc.


I'm also trying to understand whether "conforming alternative version" and "conforming alternate version" are accidental differences, or if there are actually two different terms. There are 31 occurrences of the former and 5 of the latter. I'm 90% sure this is supposed to all be the same thing; you'll note that under the title "Understanding Conforming Alternate Versions" both terms are used in the next paragraph, seemingly as synonyms.

IMO, these should all be alternative. That means "another option", while alternate implies a vacillation between two options.

I just had a look at WCAG 2.2, and its use of the two terms is almost opposite that in the Understanding section: 52 occurrences of "alternative" and 14 of "alternate"; however, there continues to be, within the normative text, use of the term "conforming alternate version" including in a definition.

@alastc do we just leave all these conflicts in place in the normative text, or do we try to incorporate this into the CFC?

PS When I just checked various files, I seemed to come up with different counts (48, 25). I'm not sure if I was doing a search with match case last time or what

@mbgower
Copy link
Contributor

mbgower commented Nov 4, 2024

@kfranqueiro
In the understanding/conformance document, an opening quotation mark has ended up before the word "Note" rather than in front of the word "If"
Screenshot 2024-11-04 at 8 43 04 AM

@mbgower
Copy link
Contributor

mbgower commented Nov 4, 2024

@kfranqueiro potentially the same issue in the Technical Definition of "Accessibility Supported" section; however, it is also like this on the 2.2 version, so maybe this is intentional?!

IMO, since there is styling showing the WHOLE thing is a quote, the quotation marks in front of note are not correct.

Screenshot 2024-11-04 at 8 53 57 AM

@kfranqueiro kfranqueiro merged commit 1b8981a into w3c:main Nov 20, 2024
5 checks passed
@kfranqueiro kfranqueiro deleted the kgf-11ty-21 branch November 20, 2024 20:42
iadawn pushed a commit that referenced this pull request Nov 28, 2024
This is a follow-up to #4007, in which I had neglected to pin
definitions for key terms to the published recommendation when building
for 2.1.

- Moves `termsMap` definition to the Eleventy config (where all other
target-version-dependent assignments are made), to be passed into the
`CustomLiquid` constructor
- Updates `termsMap` references within `CustomLiquid` to use an instance
variable set in the constructor
- Updates `loadRemoteGuidelines` to account for pre-processed terms
content
  - Also updates to account for #4124
- Skips entirety of custom `render` processing for pages not being
output for 2.1 (to avoid irrelevant error messages as well as save time)
kfranqueiro added a commit that referenced this pull request Dec 19, 2024
This applies the same publication-version-pinning logic added in #4007
for 2.1 docs, to 2.2 docs specifically when built for w3.org, so that
guideline/SC and definition text included within informative docs
matches the published recommendation. Local dev and gh-pages builds
continue to run against `guidelines` in the local repository
(effectively the Editor's Draft).

The build uses the published recommendation whenever `WCAG_VERSION` is
specified, so enabling this for w3.org builds only requires adding that
environment variable explicitly to the `publish-w3c` script.

The changes to `11ty/guidelines.ts` fix cases that were never exhibited
in the 2.1 build, but came up when testing building 2.2 against the
published recommendation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants