From 0604b0192885112a9fcd25cddd2d892646bd3ae9 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 13 Jul 2023 18:53:09 +0200 Subject: [PATCH 1/5] Set up how-to pages --- .github/workflows/gh-pages-deploy.yml | 27 + .gitignore | 6 + how-to/.eleventy.js | 26 + how-to/_includes/card.html | 7 + how-to/_includes/layout.html | 28 + how-to/_includes/layout/methods.md | 18 + how-to/_includes/layout/no-methods.md | 3 + how-to/_includes/layout/page-title.html | 7 + how-to/_includes/layout/sub-header.html | 64 + how-to/_includes/layout/test-activity.md | 19 + how-to/_includes/layout/top-header.html | 28 + how-to/_includes/layout/wai-logo.html | 4 + how-to/_includes/link.html | 6 + how-to/_includes/outcomes-list.html | 8 + how-to/assets/footer.css | 16 + how-to/assets/images/w3c.svg | 15 + how-to/assets/images/wai.svg | 21 + how-to/assets/main.css | 156 ++ how-to/assets/sub-header.css | 42 + how-to/assets/top-header.css | 55 + how-to/build/get-outcome.js | 27 + how-to/build/list-outcomes.js | 25 + how-to/outcomes/404.md | 5 + .../outcomes/_template/_template.11tydata.js | 3 + .../_template/activities/activities.json | 4 + .../outcomes/_template/activities/design.md | 5 + .../outcomes/_template/activities/develop.md | 5 + how-to/outcomes/_template/activities/edit.md | 5 + how-to/outcomes/_template/activities/plan.md | 5 + how-to/outcomes/_template/activities/test.md | 5 + how-to/outcomes/_template/examples.md | 5 + how-to/outcomes/_template/index.md | 23 + how-to/outcomes/_template/methods.md | 5 + .../methods/_template/_template.json | 8 + .../_template/methods/_template/background.md | 17 + .../methods/_template/code-snippets.md | 33 + .../methods/_template/definitions.md | 5 + .../_template/methods/_template/index.md | 22 + .../_template/methods/_template/test.md | 13 + .../outcomes/_template/methods/methods.json | 3 + how-to/outcomes/_template/outcome.json | 5 + how-to/outcomes/_template/resources.md | 7 + how-to/outcomes/_template/user-needs.md | 5 + how-to/outcomes/index.md | 7 + how-to/package-lock.json | 2347 +++++++++++++++++ how-to/package.json | 17 + how-to/readme.md | 39 + 47 files changed, 3206 insertions(+) create mode 100644 .github/workflows/gh-pages-deploy.yml create mode 100644 .gitignore create mode 100644 how-to/.eleventy.js create mode 100644 how-to/_includes/card.html create mode 100644 how-to/_includes/layout.html create mode 100644 how-to/_includes/layout/methods.md create mode 100644 how-to/_includes/layout/no-methods.md create mode 100644 how-to/_includes/layout/page-title.html create mode 100644 how-to/_includes/layout/sub-header.html create mode 100644 how-to/_includes/layout/test-activity.md create mode 100644 how-to/_includes/layout/top-header.html create mode 100644 how-to/_includes/layout/wai-logo.html create mode 100644 how-to/_includes/link.html create mode 100644 how-to/_includes/outcomes-list.html create mode 100644 how-to/assets/footer.css create mode 100644 how-to/assets/images/w3c.svg create mode 100644 how-to/assets/images/wai.svg create mode 100644 how-to/assets/main.css create mode 100644 how-to/assets/sub-header.css create mode 100644 how-to/assets/top-header.css create mode 100644 how-to/build/get-outcome.js create mode 100644 how-to/build/list-outcomes.js create mode 100644 how-to/outcomes/404.md create mode 100644 how-to/outcomes/_template/_template.11tydata.js create mode 100644 how-to/outcomes/_template/activities/activities.json create mode 100644 how-to/outcomes/_template/activities/design.md create mode 100644 how-to/outcomes/_template/activities/develop.md create mode 100644 how-to/outcomes/_template/activities/edit.md create mode 100644 how-to/outcomes/_template/activities/plan.md create mode 100644 how-to/outcomes/_template/activities/test.md create mode 100644 how-to/outcomes/_template/examples.md create mode 100644 how-to/outcomes/_template/index.md create mode 100644 how-to/outcomes/_template/methods.md create mode 100644 how-to/outcomes/_template/methods/_template/_template.json create mode 100644 how-to/outcomes/_template/methods/_template/background.md create mode 100644 how-to/outcomes/_template/methods/_template/code-snippets.md create mode 100644 how-to/outcomes/_template/methods/_template/definitions.md create mode 100644 how-to/outcomes/_template/methods/_template/index.md create mode 100644 how-to/outcomes/_template/methods/_template/test.md create mode 100644 how-to/outcomes/_template/methods/methods.json create mode 100644 how-to/outcomes/_template/outcome.json create mode 100644 how-to/outcomes/_template/resources.md create mode 100644 how-to/outcomes/_template/user-needs.md create mode 100644 how-to/outcomes/index.md create mode 100644 how-to/package-lock.json create mode 100644 how-to/package.json create mode 100644 how-to/readme.md diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml new file mode 100644 index 0000000..199b108 --- /dev/null +++ b/.github/workflows/gh-pages-deploy.yml @@ -0,0 +1,27 @@ +name: GitHub Pages Build & Deploy +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + build_deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + cache: 'npm' + - name: Eleventy Build how-to pages + run: | + npm --prefix ./how-to/ ci + npm --prefix ./how-to/ run build:gh-pages + npm --prefix ./how-to/ run copy-to-root + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + publish_dir: _site + publish_branch: gh-pages + github_token: ${{ secrets.GH_ACCESS_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..44308d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor +node_modules diff --git a/how-to/.eleventy.js b/how-to/.eleventy.js new file mode 100644 index 0000000..f3141cf --- /dev/null +++ b/how-to/.eleventy.js @@ -0,0 +1,26 @@ +const { EleventyHtmlBasePlugin } = require("@11ty/eleventy"); +const listOutcomes = require('./build/list-outcomes'); + +module.exports = function(eleventyConfig) { + // Ignore a couple things + eleventyConfig.ignores.add('**/readme.md'); + eleventyConfig.ignores.add('_build/**'); + eleventyConfig.ignores.add('**/_template/**'); + + // Global data + eleventyConfig.addGlobalData("layout", "layout.html"); + eleventyConfig.addGlobalData("outcomes", listOutcomes().outcomes); + + // Make it easy to deploy to gh-pages + eleventyConfig.addPlugin(EleventyHtmlBasePlugin); + + // Copy `assets/` to `_site/assets` + eleventyConfig.addPassthroughCopy("assets"); + + const dir = { + input: "./outcomes", + includes: "../_includes" // relative to dir.input + } + + return { dir } +}; diff --git a/how-to/_includes/card.html b/how-to/_includes/card.html new file mode 100644 index 0000000..6a43342 --- /dev/null +++ b/how-to/_includes/card.html @@ -0,0 +1,7 @@ +
+

{{ title }}

+
+

{{ content }}

+

See More

+
+
diff --git a/how-to/_includes/layout.html b/how-to/_includes/layout.html new file mode 100644 index 0000000..b7c9a8d --- /dev/null +++ b/how-to/_includes/layout.html @@ -0,0 +1,28 @@ + + + + + {%- include "layout/page-title.html" %} + + + + + {% include "layout/top-header.html" %} + {%- if outcome.slug %} + {%- include "layout/sub-header.html" %} + {%- endif %} +
+ {%- if subtitle %} +

{{ subtitle }}

+ {%- endif %} + {{ content }} +
+ + + \ No newline at end of file diff --git a/how-to/_includes/layout/methods.md b/how-to/_includes/layout/methods.md new file mode 100644 index 0000000..5a12dc3 --- /dev/null +++ b/how-to/_includes/layout/methods.md @@ -0,0 +1,18 @@ +--- +layout: layout.html +breadcrumb: Methods +--- + +{% if methods.size == 0 %} + {% include 'layout/no-methods.md' %} +{% endif %} + +{%- for method in methods %} + {%- assign href = '/' | append: outcome.slug | append: '/methods/' | append: method.slug %} + {%- + include 'card.html', + title: method.title, + content: method.description, + href: href + %} +{%- endfor %} diff --git a/how-to/_includes/layout/no-methods.md b/how-to/_includes/layout/no-methods.md new file mode 100644 index 0000000..cec7a40 --- /dev/null +++ b/how-to/_includes/layout/no-methods.md @@ -0,0 +1,3 @@ +

+ There are currently no methods defined for this outcome. +

diff --git a/how-to/_includes/layout/page-title.html b/how-to/_includes/layout/page-title.html new file mode 100644 index 0000000..4c944fa --- /dev/null +++ b/how-to/_includes/layout/page-title.html @@ -0,0 +1,7 @@ +{%- if type == 'method' %} + WCAG 3.0 {{ method.title }} Method - {{ subtitle }} +{%- elsif type == 'activity' %} + WCAG 3.0 {{ outcome.title }} Outcome - {{ subtitle }} Activity +{%- else %} + WCAG 3.0 {{ outcome.title }} Outcome - {{ title }} +{%- endif -%} diff --git a/how-to/_includes/layout/sub-header.html b/how-to/_includes/layout/sub-header.html new file mode 100644 index 0000000..9cc13aa --- /dev/null +++ b/how-to/_includes/layout/sub-header.html @@ -0,0 +1,64 @@ +
+
+ + +

+ {%- if type == 'method' %} + Method - {{ method.title }} + {%- elsif title %} + {{ title }} + {%- elsif breadcrumb == 'Methods' %} + Methods for {{ outcome.title }} + {%- endif %} +

+ + {%- if type == "method" %} + {%- assign baseUrl = '/' + | append: outcome.slug + | append: '/methods/' + | append: method.slug + %} + + {%- elsif type == 'activity' %} + {%- assign baseUrl = '/' | append: outcome.slug | append: '/activities' %} + + {%- endif %} +
+
diff --git a/how-to/_includes/layout/test-activity.md b/how-to/_includes/layout/test-activity.md new file mode 100644 index 0000000..57faa74 --- /dev/null +++ b/how-to/_includes/layout/test-activity.md @@ -0,0 +1,19 @@ +--- +layout: layout.html +subtitle: Test +--- + +{% if methods.size == 0 %} + {% include 'layout/no-methods.md' %} +{% endif %} + +{%- for method in methods %} + {%- assign href = '/' | append: outcome.slug + | append: '/methods/' | append: method.slug | append: '/test/' %} + {%- + include 'card.html', + title: method.title, + content: method.description, + href: href + %} +{% endfor %} diff --git a/how-to/_includes/layout/top-header.html b/how-to/_includes/layout/top-header.html new file mode 100644 index 0000000..4136f12 --- /dev/null +++ b/how-to/_includes/layout/top-header.html @@ -0,0 +1,28 @@ +
+ +
+
+
WCAG 3.0
+
{{ outcome.title }} Methods & How To's
+
+
+ {% include 'layout/wai-logo.html' %} +
+
+ + {%- if outcome.slug %} + + {%- endif %} +
diff --git a/how-to/_includes/layout/wai-logo.html b/how-to/_includes/layout/wai-logo.html new file mode 100644 index 0000000..cd1c4c9 --- /dev/null +++ b/how-to/_includes/layout/wai-logo.html @@ -0,0 +1,4 @@ + + W3C + Web Accessibility Initiative + diff --git a/how-to/_includes/link.html b/how-to/_includes/link.html new file mode 100644 index 0000000..5877b0d --- /dev/null +++ b/how-to/_includes/link.html @@ -0,0 +1,6 @@ +{%- assign url = href | prepend: base %} +{%- if url == page.url %} + {{ text }} +{%- else %} + {{ text }} +{%- endif %} \ No newline at end of file diff --git a/how-to/_includes/outcomes-list.html b/how-to/_includes/outcomes-list.html new file mode 100644 index 0000000..685d47b --- /dev/null +++ b/how-to/_includes/outcomes-list.html @@ -0,0 +1,8 @@ +{% for outcome in outcomes %} + {%- assign href = '/' | append: outcome.slug | append: '/' %} + {%- include 'card.html', + title: outcome.title, + content: outcome.description, + href: href + %} +{% endfor %} diff --git a/how-to/assets/footer.css b/how-to/assets/footer.css new file mode 100644 index 0000000..ca1ff9f --- /dev/null +++ b/how-to/assets/footer.css @@ -0,0 +1,16 @@ +footer { + margin-top: 4em; + padding-top: 2em; + min-height: 10em; + background: var(--dk-grey); + color: var(--off-white); +} + +footer h2 a { + color: var(--gold); + text-decoration: none; +} + +footer a { + color: var(--off-white); +} diff --git a/how-to/assets/images/w3c.svg b/how-to/assets/images/w3c.svg new file mode 100644 index 0000000..80a3cd9 --- /dev/null +++ b/how-to/assets/images/w3c.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/how-to/assets/images/wai.svg b/how-to/assets/images/wai.svg new file mode 100644 index 0000000..7f8c7aa --- /dev/null +++ b/how-to/assets/images/wai.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/how-to/assets/main.css b/how-to/assets/main.css new file mode 100644 index 0000000..53a5563 --- /dev/null +++ b/how-to/assets/main.css @@ -0,0 +1,156 @@ +@import 'top-header.css'; +@import 'sub-header.css'; +@import 'footer.css'; + +:root { + --w3c-classic: #005A9C; + --w3c-blue: #003366; + --wai-green: #005A6A; + --off-black: #1d1d1d; + --dk-grey: #3b3b3b; + --faded-red: #c0272d; + --red-subtle: #f1d0e1; + --light-blue: #196cac; + --dk-blue: #091832; + --gold: rgb(238, 208, 9); + --gold-light: rgba(238, 208, 9, .35); + --ocean: #00818d; + --cloudy: #bccbd3; + --cloudy-subtle: #d0e1f1; + --grey: #686868; + --line-grey: #ddd; + --trans-line-grey: rgba(221, 221, 221, 0.32); + --off-white: #f2f2f2; + --body-bg: #FAFAFC; + --lt-off-white: #fafafa; + --pure-white: #ffffff; + --white-transparent: rgba(255, 255, 255, 0.92);; + --visited-link: #660066; + --footer-grey: #efefef; +} + +*:focus-visible { + outline: solid 2px currentColor; +} + +body { + margin: 0; + background: var(--body-bg); + font-family: 'Roboto', Verdana, Geneva, Tahoma, sans-serif; +} + +a { + color: var(--w3c-blue); +} +main > a:visited { + color: var(--visited-link); +} + +h1, h2, h3, h4, h5, h6 { + color: var(--wai-green); +} + +li::marker { + color: var(--faded-red); +} + +.page-width, main { + max-width: 60em; + margin: 0 auto; + padding: 0 1em; +} + +.nav-list ul { + display: flex; + flex-wrap: wrap; + justify-content: center; + list-style: none; + margin: 0; + padding: 0; + font-size: 1.2em; +} + +.nav-list li { + display: inline-block; + white-space: nowrap; +} + +@media screen and (max-width: 35em /* xs-breakpoint */) { + .nav-list li { + flex: 1; + } +} + +.nav-list a { + color: inherit; + text-decoration: none; + display: inline-block; + padding: min(1em, 4vw) 0; + margin: 0 min(1em, 4vw); + width: 100%; + text-align: center; + outline-offset: -3px; + outline-width: 2px; + outline-color: currentColor; +} + +.nav-list .current { + border-bottom: solid 3px currentColor; + padding-bottom: 0.5em; + margin-bottom: 0.5em; +} + +main li { + margin-bottom: .5em; +} +main p { + line-height: 1.5em; +} + +.card { + background: var(--off-white); + border: solid 1px var(--line-grey); + padding: 1.5em 1em 1em; + margin: 2em; +} +.card > :first-child { + margin: 0; +} + +.flex { display: flex; } +.flex > :first-child { flex-grow: 1; } + +.card-button { + display: inline-block; + margin: 0 1em; + padding: .5em 2em; + text-decoration: none; + background: #111; + color: #EEE; + white-space: nowrap; +} + +.method-card { + background: var(--off-white); + border: solid 1px var(--line-grey); + width: 30em; + margin: 2em auto; + padding: 1.5em 5em; +} + +.method-card dt, .method-card dd { + display: inline-block; + margin: 0; +} + +.method-card dt { + font-size: 1.5em; + padding: .5em; +} + +.normative { + border: solid 1px var(--cloudy-subtle); + margin-top: 1em; + padding: .5em 1em; + border-left-width: 1em; +} diff --git a/how-to/assets/sub-header.css b/how-to/assets/sub-header.css new file mode 100644 index 0000000..45310d5 --- /dev/null +++ b/how-to/assets/sub-header.css @@ -0,0 +1,42 @@ +.sub-header { + background: var(--off-white); + padding-top: 1.3em; + border-bottom: solid 1px var(--line-grey); +} + +.sub-header .breadcrumb { + margin: 0; + padding: 0; + list-style: none; +} + +.sub-header .breadcrumb li { + display: inline-block; +} + +.sub-header .breadcrumb li:not(:last-child):after { + content: " / " +} + +.sub-header .subtitle { + font-size: 2.5rem; + font-size: min(2.5rem, 10vh); + text-align: center; + margin: 1.3em 0 .5em; +} + +.sub-header nav ul { + list-style: none; + margin: 0; + padding: 0; + text-align: center; +} +.sub-header nav a { + border: solid 1px transparent; + margin-bottom: -1px; +} +.sub-header [aria-current="page"] { + background: var(--body-bg); + border-color: var(--line-grey); + border-bottom-color: var(--body-bg); +} diff --git a/how-to/assets/top-header.css b/how-to/assets/top-header.css new file mode 100644 index 0000000..76be5a4 --- /dev/null +++ b/how-to/assets/top-header.css @@ -0,0 +1,55 @@ +.top-header { + background: var(--w3c-classic); + color: #eee +} + +.top-header header.page-width { + display: flex; + flex-direction: row; + justify-content: space-between; + padding-block: 1.5em; +} + +@media screen and (max-width: 35em /* xs-breakpoint */) { + .top-header header.page-width { + flex-direction: column; + } +} + +.top-header .branding { + margin-top: 1em; + display: flex; + flex-direction: row; +} +.top-header .branding a:focus { + outline-color: var(--off-white); + outline-offset: .5em; +} +.top-header .wcag3 { + margin: 0 0 .2em; + font-size: 1.2em; +} +.top-header .title { + font-size: 1.8em; +} +.top-header nav { + background-color: var(--w3c-blue); +} +.top-header [aria-current="page"] { + background-color: var(--off-white); + color: var(--w3c-blue);; +} + +.skip-link { + position: absolute; + top: -1000px; + overflow: hidden; +} +.skip-link:focus { + top: 3px; /* space for the outline */ + overflow: visible; + background-color: var(--w3c-blue); + padding: .75em 2em; + color: #fff; + z-index: 1000; +} \ No newline at end of file diff --git a/how-to/build/get-outcome.js b/how-to/build/get-outcome.js new file mode 100644 index 0000000..f322a67 --- /dev/null +++ b/how-to/build/get-outcome.js @@ -0,0 +1,27 @@ +const fs = require('fs') +const path = require('path') + +module.exports = function getOutcome(dirName) { + const methodDir = path.resolve(dirName, 'methods') + + const methods = fs.readdirSync(methodDir) + .filter(file => fs.statSync(path.join(methodDir, file)).isDirectory()) + .map(subDir => { + if (subDir.startsWith('_')) { + return null + } + try { + const fileStr = fs.readFileSync(path.join(methodDir, subDir, subDir + '.json'), 'utf8') + const json = JSON.parse(fileStr) + return json.method; + } catch { /* do nothing */ } + return null + }) + .filter(method => method !== null) + .sort((a, b) => a.index - b.index) + + const outcome = require(path.resolve(dirName, './outcome.json')) + outcome.slug = dirName.split(path.sep).pop(); + + return { methods, outcome } +} diff --git a/how-to/build/list-outcomes.js b/how-to/build/list-outcomes.js new file mode 100644 index 0000000..1f08def --- /dev/null +++ b/how-to/build/list-outcomes.js @@ -0,0 +1,25 @@ +const fs = require('fs') +const path = require('path') + +module.exports = function listOutcomes(dirName = './outcomes') { + const outcomes = fs.readdirSync(dirName) + .filter(file => fs.statSync(path.join(dirName, file)).isDirectory()) + .map(subDir => { + if (subDir.startsWith('_')) { + return null; + } + try { + const fileStr = fs.readFileSync(path.join(dirName, subDir, 'outcome.json'), 'utf8') + const json = JSON.parse(fileStr) + json.slug = subDir + return json + } catch (e) { + console.error(e) + } + return null + }) + .filter(method => method !== null) + .sort((a, b) => a.index - b.index) + + return { outcomes } +} diff --git a/how-to/outcomes/404.md b/how-to/outcomes/404.md new file mode 100644 index 0000000..ec19053 --- /dev/null +++ b/how-to/outcomes/404.md @@ -0,0 +1,5 @@ +--- +title: Page Not Found +--- + +Page does not seem to exist. \ No newline at end of file diff --git a/how-to/outcomes/_template/_template.11tydata.js b/how-to/outcomes/_template/_template.11tydata.js new file mode 100644 index 0000000..baddaa9 --- /dev/null +++ b/how-to/outcomes/_template/_template.11tydata.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../build/get-outcome')(__dirname) +} diff --git a/how-to/outcomes/_template/activities/activities.json b/how-to/outcomes/_template/activities/activities.json new file mode 100644 index 0000000..aeadf6c --- /dev/null +++ b/how-to/outcomes/_template/activities/activities.json @@ -0,0 +1,4 @@ +{ + "type": "activity", + "title": "Activity" +} \ No newline at end of file diff --git a/how-to/outcomes/_template/activities/design.md b/how-to/outcomes/_template/activities/design.md new file mode 100644 index 0000000..b0e47c2 --- /dev/null +++ b/how-to/outcomes/_template/activities/design.md @@ -0,0 +1,5 @@ +--- +subtitle: Design +--- + +Coming soon diff --git a/how-to/outcomes/_template/activities/develop.md b/how-to/outcomes/_template/activities/develop.md new file mode 100644 index 0000000..e8a7da6 --- /dev/null +++ b/how-to/outcomes/_template/activities/develop.md @@ -0,0 +1,5 @@ +--- +subtitle: Develop +--- + +Coming soon diff --git a/how-to/outcomes/_template/activities/edit.md b/how-to/outcomes/_template/activities/edit.md new file mode 100644 index 0000000..41c567a --- /dev/null +++ b/how-to/outcomes/_template/activities/edit.md @@ -0,0 +1,5 @@ +--- +subtitle: Edit +--- + +Coming soon diff --git a/how-to/outcomes/_template/activities/plan.md b/how-to/outcomes/_template/activities/plan.md new file mode 100644 index 0000000..aa2a004 --- /dev/null +++ b/how-to/outcomes/_template/activities/plan.md @@ -0,0 +1,5 @@ +--- +subtitle: Plan +--- + +Coming soon diff --git a/how-to/outcomes/_template/activities/test.md b/how-to/outcomes/_template/activities/test.md new file mode 100644 index 0000000..bae716a --- /dev/null +++ b/how-to/outcomes/_template/activities/test.md @@ -0,0 +1,5 @@ +--- +layout: layout/test-activity.md +--- + + diff --git a/how-to/outcomes/_template/examples.md b/how-to/outcomes/_template/examples.md new file mode 100644 index 0000000..8b2264a --- /dev/null +++ b/how-to/outcomes/_template/examples.md @@ -0,0 +1,5 @@ +--- +title: Examples +--- + +Coming soon diff --git a/how-to/outcomes/_template/index.md b/how-to/outcomes/_template/index.md new file mode 100644 index 0000000..eeb7edc --- /dev/null +++ b/how-to/outcomes/_template/index.md @@ -0,0 +1,23 @@ +--- +title: Get Started +--- + +
+

{{ outcome.description }}

+
+ +## Summary + +Coming soon + +## Why + +Coming soon + +## Who it helps + +Coming soon + +## How + +Coming soon diff --git a/how-to/outcomes/_template/methods.md b/how-to/outcomes/_template/methods.md new file mode 100644 index 0000000..d2d86cc --- /dev/null +++ b/how-to/outcomes/_template/methods.md @@ -0,0 +1,5 @@ +--- +layout: layout/methods.md +--- + + diff --git a/how-to/outcomes/_template/methods/_template/_template.json b/how-to/outcomes/_template/methods/_template/_template.json new file mode 100644 index 0000000..4de32bd --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/_template.json @@ -0,0 +1,8 @@ +{ + "method": { + "index": 1, + "title": "METHOD NAME (Also, rename this file)", + "slug": "method-directory-name", + "description": "METHOD DESCRIPTION" + } +} diff --git a/how-to/outcomes/_template/methods/_template/background.md b/how-to/outcomes/_template/methods/_template/background.md new file mode 100644 index 0000000..cb7ae9c --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/background.md @@ -0,0 +1,17 @@ +--- +subtitle: Background +--- + +Coming soon + +### Bibliography + +- [Coming soon](https://) + +### Assumptions + +- [Coming soon](https://) + +### Accessibility Support + +Text diff --git a/how-to/outcomes/_template/methods/_template/code-snippets.md b/how-to/outcomes/_template/methods/_template/code-snippets.md new file mode 100644 index 0000000..eb56b89 --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/code-snippets.md @@ -0,0 +1,33 @@ +--- +subtitle: Code Snippets +--- + +### Passed + +#### Passed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Failed + +#### Failed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Inapplicable + +#### Inapplicable Example 1 + +Coming soon + +```html +Code snippet +``` diff --git a/how-to/outcomes/_template/methods/_template/definitions.md b/how-to/outcomes/_template/methods/_template/definitions.md new file mode 100644 index 0000000..93ee43b --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/definitions.md @@ -0,0 +1,5 @@ +--- +subtitle: Technical Definitions +--- + +Coming soon diff --git a/how-to/outcomes/_template/methods/_template/index.md b/how-to/outcomes/_template/methods/_template/index.md new file mode 100644 index 0000000..6af53a2 --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/index.md @@ -0,0 +1,22 @@ +--- +subtitle: Introduction +--- + +### Summary + +Coming soon + +
+
+
Platform:
+
Any platform supporting HTML
+
+
+
Technology:
+
HTML
+
+
+ +### How it solves user need + +Coming soon \ No newline at end of file diff --git a/how-to/outcomes/_template/methods/_template/test.md b/how-to/outcomes/_template/methods/_template/test.md new file mode 100644 index 0000000..08fd19a --- /dev/null +++ b/how-to/outcomes/_template/methods/_template/test.md @@ -0,0 +1,13 @@ +--- +subtitle: Test +--- + +Coming soon + +### Applicability + +Coming soon + +### Expectation + +Coming soon diff --git a/how-to/outcomes/_template/methods/methods.json b/how-to/outcomes/_template/methods/methods.json new file mode 100644 index 0000000..f25a945 --- /dev/null +++ b/how-to/outcomes/_template/methods/methods.json @@ -0,0 +1,3 @@ +{ + "type": "method" +} \ No newline at end of file diff --git a/how-to/outcomes/_template/outcome.json b/how-to/outcomes/_template/outcome.json new file mode 100644 index 0000000..56a1bd1 --- /dev/null +++ b/how-to/outcomes/_template/outcome.json @@ -0,0 +1,5 @@ +{ + "index": 0, + "title": "OUTCOME NAME", + "description": "OUTCOME DESCRIPTION" +} diff --git a/how-to/outcomes/_template/resources.md b/how-to/outcomes/_template/resources.md new file mode 100644 index 0000000..368fbda --- /dev/null +++ b/how-to/outcomes/_template/resources.md @@ -0,0 +1,7 @@ +--- +title: Resources +--- + +## W3C Resources + +Coming soon diff --git a/how-to/outcomes/_template/user-needs.md b/how-to/outcomes/_template/user-needs.md new file mode 100644 index 0000000..7da1edc --- /dev/null +++ b/how-to/outcomes/_template/user-needs.md @@ -0,0 +1,5 @@ +--- +title: User Needs +--- + +Coming soon diff --git a/how-to/outcomes/index.md b/how-to/outcomes/index.md new file mode 100644 index 0000000..e052d99 --- /dev/null +++ b/how-to/outcomes/index.md @@ -0,0 +1,7 @@ +--- +title: WCAG 3 Outcomes +--- + +# WCAG 3 Outcomes + +{% include "outcomes-list.html" %} diff --git a/how-to/package-lock.json b/how-to/package-lock.json new file mode 100644 index 0000000..c1d2f51 --- /dev/null +++ b/how-to/package-lock.json @@ -0,0 +1,2347 @@ +{ + "name": "wcag3-docs", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wcag3-docs", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@11ty/eleventy": "^2.0.1" + } + }, + "node_modules/@11ty/dependency-tree": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz", + "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==", + "dev": true + }, + "node_modules/@11ty/eleventy": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz", + "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==", + "dev": true, + "dependencies": { + "@11ty/dependency-tree": "^2.0.1", + "@11ty/eleventy-dev-server": "^1.0.4", + "@11ty/eleventy-utils": "^1.0.1", + "@11ty/lodash-custom": "^4.17.21", + "@iarna/toml": "^2.2.5", + "@sindresorhus/slugify": "^1.1.2", + "bcp-47-normalize": "^1.1.1", + "chokidar": "^3.5.3", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "dependency-graph": "^0.11.0", + "ejs": "^3.1.9", + "fast-glob": "^3.2.12", + "graceful-fs": "^4.2.11", + "gray-matter": "^4.0.3", + "hamljs": "^0.6.2", + "handlebars": "^4.7.7", + "is-glob": "^4.0.3", + "iso-639-1": "^2.1.15", + "kleur": "^4.1.5", + "liquidjs": "^10.7.0", + "luxon": "^3.3.0", + "markdown-it": "^13.0.1", + "micromatch": "^4.0.5", + "minimist": "^1.2.8", + "moo": "^0.5.2", + "multimatch": "^5.0.0", + "mustache": "^4.2.0", + "normalize-path": "^3.0.0", + "nunjucks": "^3.2.3", + "path-to-regexp": "^6.2.1", + "please-upgrade-node": "^3.2.0", + "posthtml": "^0.16.6", + "posthtml-urls": "^1.0.0", + "pug": "^3.0.2", + "recursive-copy": "^2.0.14", + "semver": "^7.3.8", + "slugify": "^1.6.6" + }, + "bin": { + "eleventy": "cmd.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-dev-server": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz", + "integrity": "sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==", + "dev": true, + "dependencies": { + "@11ty/eleventy-utils": "^1.0.1", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "dev-ip": "^1.0.1", + "finalhandler": "^1.2.0", + "mime": "^3.0.0", + "minimist": "^1.2.8", + "morphdom": "^2.7.0", + "please-upgrade-node": "^3.2.0", + "ssri": "^8.0.1", + "ws": "^8.13.0" + }, + "bin": { + "eleventy-dev-server": "cmd.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", + "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/lodash-custom": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", + "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "dev": true, + "dependencies": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", + "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", + "integrity": "sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcp-47": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", + "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", + "dev": true, + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", + "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-normalize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", + "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", + "dev": true, + "dependencies": { + "bcp-47": "^1.0.0", + "bcp-47-match": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/hamljs": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", + "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/http-equiv-refresh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz", + "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iso-639-1": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", + "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/junk": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", + "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/liquidjs": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.8.2.tgz", + "integrity": "sha512-U6T0nLCwQjdYKh6e32X0f8cpMpRByrCgk6PViMaKszSbNIwobe24T050CSUauklYIuDtvVlfW8DRM+QS6gPCSQ==", + "dev": true, + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "liquid": "bin/liquid.js", + "liquidjs": "bin/liquid.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/liquidjs" + } + }, + "node_modules/list-to-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", + "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", + "dev": true + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/luxon": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", + "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/maximatch": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", + "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==", + "dev": true, + "dependencies": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true + }, + "node_modules/morphdom": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.0.tgz", + "integrity": "sha512-8L8DwbdjjWwM/aNqj7BSoSn4G7SQLNiDcxCnMWbf506jojR6lNQ5YOmQqXEIE8u3C492UlkN4d0hQwz97+M1oQ==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dev": true, + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-urls": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/posthtml-urls/-/posthtml-urls-1.0.0.tgz", + "integrity": "sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==", + "dev": true, + "dependencies": { + "http-equiv-refresh": "^1.0.0", + "list-to-array": "^1.1.0", + "parse-srcset": "^1.0.2", + "promise-each": "^2.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-each": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", + "integrity": "sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==", + "dev": true, + "dependencies": { + "any-promise": "^0.1.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-copy": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz", + "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==", + "dev": true, + "dependencies": { + "errno": "^0.1.2", + "graceful-fs": "^4.1.4", + "junk": "^1.0.1", + "maximatch": "^0.1.0", + "mkdirp": "^0.5.1", + "pify": "^2.3.0", + "promise": "^7.0.1", + "rimraf": "^2.7.1", + "slash": "^1.0.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/how-to/package.json b/how-to/package.json new file mode 100644 index 0000000..c3bbe37 --- /dev/null +++ b/how-to/package.json @@ -0,0 +1,17 @@ +{ + "name": "wcag3-docs", + "version": "1.0.0", + "description": "Methods & How-To's for WCAG 3.0 Outcomes", + "scripts": { + "serve": "npx @11ty/eleventy --serve", + "build": "npx @11ty/eleventy", + "build:gh-pages": "npx @11ty/eleventy --pathprefix $npm_package_name", + "copy-to-root": "mkdir -p ../_site && cp -r ./_site ../_site/how-to" + }, + "keywords": [], + "author": "Wilco Fiers", + "license": "ISC", + "devDependencies": { + "@11ty/eleventy": "^2.0.1" + } +} diff --git a/how-to/readme.md b/how-to/readme.md new file mode 100644 index 0000000..b9ad1a1 --- /dev/null +++ b/how-to/readme.md @@ -0,0 +1,39 @@ +# WCAG 3 docs wire frames + +## Installation + +**Prerequisites**: This project requires [NodeJS](https://nodejs.org/) + +From the repository root, run the following command to install all necessary dependencies: + +```sh +npm ci +``` + +## Local development + +To run this project locally, use the following command in the repository's root directory. This will start a server on `http://localhost:8080/`. The server has hot-reload enabled so changes to files will be reflected in the browser immediately. + +```sh +npm run serve +``` + +## Creating a new outcome + +1. Copy `_template/` in `outcomes/`. Use lower case letters and dashes (-) only for the directory name. This will be the **slug** which will be needed later. + +2. In your new directory, rename `_template.11tydata.js` to `new-dir-name.11ty.data.js` where `new-dir-name` is whatever you called the directory. + +3. in `outcomes.json` set the `title` to be the short name of the outcome. Examples: `Non-text content`, `Error notification`, etc. Add a 3 - 4 sentence description to `description`. The `index` is a number to help sort outcomes in order. Leave at `0` if you do not know what this should be. + +4. Fill out the `.md` files in your new directory + +## Create a new method + +1. Copy the method template from `outcome/_template/methods/_template` to the `methods` directory of the outcome you are creating a method for + +2. Give the copied directory an appropriate name + +3. Rename `_template.json` to match the directory name, and update its content. Give the method a `title` (1 - 4 words) and a description (2 - 4 sentences). The `slug` must be the directory name. Use `index` to sort methods. + +4. Fill out the `.md` files in your new directory From 1dee63606b5628fba05ce641341b0cf4ff143642 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 13 Jul 2023 18:58:14 +0200 Subject: [PATCH 2/5] Run from temp branch --- .github/workflows/gh-pages-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml index 199b108..f6dbdd5 100644 --- a/.github/workflows/gh-pages-deploy.yml +++ b/.github/workflows/gh-pages-deploy.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - how-to-pages jobs: build_deploy: From c7d86bf9603f2f68587ef70ff7bf4c888b356f93 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 13 Jul 2023 19:00:01 +0200 Subject: [PATCH 3/5] Set lock file --- .github/workflows/gh-pages-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml index f6dbdd5..d611510 100644 --- a/.github/workflows/gh-pages-deploy.yml +++ b/.github/workflows/gh-pages-deploy.yml @@ -14,6 +14,7 @@ jobs: - uses: actions/setup-node@v3 with: cache: 'npm' + cache-dependency-path: how-to/package-lock.json - name: Eleventy Build how-to pages run: | npm --prefix ./how-to/ ci From bd2ee8f01be38f0d79f3e6e5f5ace47f19fcae2f Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 13 Jul 2023 19:03:50 +0200 Subject: [PATCH 4/5] Correct pathprerix --- how-to/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/how-to/package.json b/how-to/package.json index c3bbe37..8443255 100644 --- a/how-to/package.json +++ b/how-to/package.json @@ -1,11 +1,11 @@ { - "name": "wcag3-docs", + "name": "wcag3-how-to", "version": "1.0.0", "description": "Methods & How-To's for WCAG 3.0 Outcomes", "scripts": { "serve": "npx @11ty/eleventy --serve", "build": "npx @11ty/eleventy", - "build:gh-pages": "npx @11ty/eleventy --pathprefix $npm_package_name", + "build:gh-pages": "npx @11ty/eleventy --pathprefix wcag3/how-to", "copy-to-root": "mkdir -p ../_site && cp -r ./_site ../_site/how-to" }, "keywords": [], From 15bed7a6102541517647f05c4310bd01e9761c25 Mon Sep 17 00:00:00 2001 From: Wilco Fiers Date: Thu, 13 Jul 2023 19:08:54 +0200 Subject: [PATCH 5/5] Add how-to pages for error notification --- .../activities/activities.json | 4 ++ .../activities/design.md | 5 ++ .../activities/develop.md | 5 ++ .../activities/edit.md | 5 ++ .../activities/plan.md | 5 ++ .../activities/test.md | 5 ++ .../error-notifications-described.11tydata.js | 3 + .../error-notifications-described/examples.md | 5 ++ .../error-notifications-described/index.md | 23 ++++++ .../error-notifications-described/methods.md | 5 ++ .../clear-language-errors/background.md | 17 +++++ .../clear-language-errors.json | 8 +++ .../clear-language-errors/code-snippets.md | 33 +++++++++ .../clear-language-errors/definitions.md | 5 ++ .../methods/clear-language-errors/index.md | 26 +++++++ .../methods/clear-language-errors/test.md | 17 +++++ .../methods/methods.json | 3 + .../outcome.json | 5 ++ .../resources.md | 7 ++ .../user-needs.md | 38 ++++++++++ .../activities/activities.json | 4 ++ .../activities/design.md | 5 ++ .../activities/develop.md | 5 ++ .../activities/edit.md | 5 ++ .../activities/plan.md | 5 ++ .../activities/test.md | 5 ++ .../error-notifications-provided.11tydata.js | 3 + .../error-notifications-provided/examples.md | 5 ++ .../error-notifications-provided/index.md | 23 ++++++ .../error-notifications-provided/methods.md | 5 ++ .../background.md | 17 +++++ .../code-snippets.md | 33 +++++++++ .../definitions.md | 5 ++ .../discernable-consistent-accessible.json | 8 +++ .../index.md | 22 ++++++ .../discernable-consistent-accessible/test.md | 19 +++++ .../methods/methods.json | 3 + .../tech-stack-notifications/background.md | 17 +++++ .../tech-stack-notifications/code-snippets.md | 33 +++++++++ .../tech-stack-notifications/definitions.md | 5 ++ .../methods/tech-stack-notifications/index.md | 34 +++++++++ .../tech-stack-notifications.json | 8 +++ .../methods/tech-stack-notifications/test.md | 13 ++++ .../methods/what-errors/background.md | 17 +++++ .../methods/what-errors/code-snippets.md | 33 +++++++++ .../methods/what-errors/definitions.md | 5 ++ .../methods/what-errors/index.md | 29 ++++++++ .../methods/what-errors/test.md | 15 ++++ .../methods/what-errors/what-errors.json | 8 +++ .../error-notifications-provided/outcome.json | 5 ++ .../error-notifications-provided/resources.md | 7 ++ .../user-needs.md | 71 +++++++++++++++++++ .../activities/activities.json | 4 ++ .../activities/design.md | 5 ++ .../activities/develop.md | 5 ++ .../activities/edit.md | 5 ++ .../activities/plan.md | 5 ++ .../activities/test.md | 5 ++ .../error-remedy-instructions.11tydata.js | 3 + .../error-remedy-instructions/examples.md | 5 ++ .../error-remedy-instructions/index.md | 23 ++++++ .../error-remedy-instructions/methods.md | 5 ++ .../methods/methods.json | 3 + .../error-remedy-instructions/outcome.json | 5 ++ .../error-remedy-instructions/resources.md | 7 ++ .../error-remedy-instructions/user-needs.md | 40 +++++++++++ .../activities/activities.json | 4 ++ .../activities/design.md | 5 ++ .../activities/develop.md | 5 ++ .../activities/edit.md | 5 ++ .../activities/plan.md | 5 ++ .../activities/test.md | 5 ++ .../timely-targeted-guidance/examples.md | 5 ++ .../timely-targeted-guidance/index.md | 23 ++++++ .../timely-targeted-guidance/methods.md | 5 ++ .../methods/methods.json | 3 + .../timely-targeted-guidance/outcome.json | 5 ++ .../timely-targeted-guidance/resources.md | 7 ++ .../timely-targeted-guidance.11tydata.js | 3 + .../timely-targeted-guidance/user-needs.md | 49 +++++++++++++ 80 files changed, 945 insertions(+) create mode 100644 how-to/outcomes/error-notifications-described/activities/activities.json create mode 100644 how-to/outcomes/error-notifications-described/activities/design.md create mode 100644 how-to/outcomes/error-notifications-described/activities/develop.md create mode 100644 how-to/outcomes/error-notifications-described/activities/edit.md create mode 100644 how-to/outcomes/error-notifications-described/activities/plan.md create mode 100644 how-to/outcomes/error-notifications-described/activities/test.md create mode 100644 how-to/outcomes/error-notifications-described/error-notifications-described.11tydata.js create mode 100644 how-to/outcomes/error-notifications-described/examples.md create mode 100644 how-to/outcomes/error-notifications-described/index.md create mode 100644 how-to/outcomes/error-notifications-described/methods.md create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/background.md create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/clear-language-errors.json create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/code-snippets.md create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/definitions.md create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/index.md create mode 100644 how-to/outcomes/error-notifications-described/methods/clear-language-errors/test.md create mode 100644 how-to/outcomes/error-notifications-described/methods/methods.json create mode 100644 how-to/outcomes/error-notifications-described/outcome.json create mode 100644 how-to/outcomes/error-notifications-described/resources.md create mode 100644 how-to/outcomes/error-notifications-described/user-needs.md create mode 100644 how-to/outcomes/error-notifications-provided/activities/activities.json create mode 100644 how-to/outcomes/error-notifications-provided/activities/design.md create mode 100644 how-to/outcomes/error-notifications-provided/activities/develop.md create mode 100644 how-to/outcomes/error-notifications-provided/activities/edit.md create mode 100644 how-to/outcomes/error-notifications-provided/activities/plan.md create mode 100644 how-to/outcomes/error-notifications-provided/activities/test.md create mode 100644 how-to/outcomes/error-notifications-provided/error-notifications-provided.11tydata.js create mode 100644 how-to/outcomes/error-notifications-provided/examples.md create mode 100644 how-to/outcomes/error-notifications-provided/index.md create mode 100644 how-to/outcomes/error-notifications-provided/methods.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/background.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/code-snippets.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/definitions.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/discernable-consistent-accessible.json create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/index.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/test.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/methods.json create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/background.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/code-snippets.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/definitions.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/index.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/tech-stack-notifications.json create mode 100644 how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/test.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/background.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/code-snippets.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/definitions.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/index.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/test.md create mode 100644 how-to/outcomes/error-notifications-provided/methods/what-errors/what-errors.json create mode 100644 how-to/outcomes/error-notifications-provided/outcome.json create mode 100644 how-to/outcomes/error-notifications-provided/resources.md create mode 100644 how-to/outcomes/error-notifications-provided/user-needs.md create mode 100644 how-to/outcomes/error-remedy-instructions/activities/activities.json create mode 100644 how-to/outcomes/error-remedy-instructions/activities/design.md create mode 100644 how-to/outcomes/error-remedy-instructions/activities/develop.md create mode 100644 how-to/outcomes/error-remedy-instructions/activities/edit.md create mode 100644 how-to/outcomes/error-remedy-instructions/activities/plan.md create mode 100644 how-to/outcomes/error-remedy-instructions/activities/test.md create mode 100644 how-to/outcomes/error-remedy-instructions/error-remedy-instructions.11tydata.js create mode 100644 how-to/outcomes/error-remedy-instructions/examples.md create mode 100644 how-to/outcomes/error-remedy-instructions/index.md create mode 100644 how-to/outcomes/error-remedy-instructions/methods.md create mode 100644 how-to/outcomes/error-remedy-instructions/methods/methods.json create mode 100644 how-to/outcomes/error-remedy-instructions/outcome.json create mode 100644 how-to/outcomes/error-remedy-instructions/resources.md create mode 100644 how-to/outcomes/error-remedy-instructions/user-needs.md create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/activities.json create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/design.md create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/develop.md create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/edit.md create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/plan.md create mode 100644 how-to/outcomes/timely-targeted-guidance/activities/test.md create mode 100644 how-to/outcomes/timely-targeted-guidance/examples.md create mode 100644 how-to/outcomes/timely-targeted-guidance/index.md create mode 100644 how-to/outcomes/timely-targeted-guidance/methods.md create mode 100644 how-to/outcomes/timely-targeted-guidance/methods/methods.json create mode 100644 how-to/outcomes/timely-targeted-guidance/outcome.json create mode 100644 how-to/outcomes/timely-targeted-guidance/resources.md create mode 100644 how-to/outcomes/timely-targeted-guidance/timely-targeted-guidance.11tydata.js create mode 100644 how-to/outcomes/timely-targeted-guidance/user-needs.md diff --git a/how-to/outcomes/error-notifications-described/activities/activities.json b/how-to/outcomes/error-notifications-described/activities/activities.json new file mode 100644 index 0000000..aeadf6c --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/activities.json @@ -0,0 +1,4 @@ +{ + "type": "activity", + "title": "Activity" +} \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-described/activities/design.md b/how-to/outcomes/error-notifications-described/activities/design.md new file mode 100644 index 0000000..b0e47c2 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/design.md @@ -0,0 +1,5 @@ +--- +subtitle: Design +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/activities/develop.md b/how-to/outcomes/error-notifications-described/activities/develop.md new file mode 100644 index 0000000..e8a7da6 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/develop.md @@ -0,0 +1,5 @@ +--- +subtitle: Develop +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/activities/edit.md b/how-to/outcomes/error-notifications-described/activities/edit.md new file mode 100644 index 0000000..41c567a --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/edit.md @@ -0,0 +1,5 @@ +--- +subtitle: Edit +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/activities/plan.md b/how-to/outcomes/error-notifications-described/activities/plan.md new file mode 100644 index 0000000..aa2a004 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/plan.md @@ -0,0 +1,5 @@ +--- +subtitle: Plan +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/activities/test.md b/how-to/outcomes/error-notifications-described/activities/test.md new file mode 100644 index 0000000..bae716a --- /dev/null +++ b/how-to/outcomes/error-notifications-described/activities/test.md @@ -0,0 +1,5 @@ +--- +layout: layout/test-activity.md +--- + + diff --git a/how-to/outcomes/error-notifications-described/error-notifications-described.11tydata.js b/how-to/outcomes/error-notifications-described/error-notifications-described.11tydata.js new file mode 100644 index 0000000..baddaa9 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/error-notifications-described.11tydata.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../build/get-outcome')(__dirname) +} diff --git a/how-to/outcomes/error-notifications-described/examples.md b/how-to/outcomes/error-notifications-described/examples.md new file mode 100644 index 0000000..8b2264a --- /dev/null +++ b/how-to/outcomes/error-notifications-described/examples.md @@ -0,0 +1,5 @@ +--- +title: Examples +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/index.md b/how-to/outcomes/error-notifications-described/index.md new file mode 100644 index 0000000..eeb7edc --- /dev/null +++ b/how-to/outcomes/error-notifications-described/index.md @@ -0,0 +1,23 @@ +--- +title: Get Started +--- + +
+

{{ outcome.description }}

+
+ +## Summary + +Coming soon + +## Why + +Coming soon + +## Who it helps + +Coming soon + +## How + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/methods.md b/how-to/outcomes/error-notifications-described/methods.md new file mode 100644 index 0000000..d2d86cc --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods.md @@ -0,0 +1,5 @@ +--- +layout: layout/methods.md +--- + + diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/background.md b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/background.md new file mode 100644 index 0000000..35176bb --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/background.md @@ -0,0 +1,17 @@ +--- +subtitle: Background +--- + +Coming soon + +### Bibliography + +- [Coming soon](https://) + +### Assumptions + +- [Coming soon](https://) + +### Accessibility Support + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/clear-language-errors.json b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/clear-language-errors.json new file mode 100644 index 0000000..8a02180 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/clear-language-errors.json @@ -0,0 +1,8 @@ +{ + "method": { + "index": 1, + "title": "Explain the error in clear language", + "slug": "clear-language-errors", + "description": "" + } +} diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/code-snippets.md b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/code-snippets.md new file mode 100644 index 0000000..eb56b89 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/code-snippets.md @@ -0,0 +1,33 @@ +--- +subtitle: Code Snippets +--- + +### Passed + +#### Passed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Failed + +#### Failed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Inapplicable + +#### Inapplicable Example 1 + +Coming soon + +```html +Code snippet +``` diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/definitions.md b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/definitions.md new file mode 100644 index 0000000..93ee43b --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/definitions.md @@ -0,0 +1,5 @@ +--- +subtitle: Technical Definitions +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/index.md b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/index.md new file mode 100644 index 0000000..17bba6c --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/index.md @@ -0,0 +1,26 @@ +--- +subtitle: Introduction +--- + +* Discussion of how to handle a situation where there is only one Method. We agreed that if there are multiple methods, we can articulate which combinations of methods are satisfactory to meet the outcome, or it can be one outcome, one method. + +* When creating outcomes, there is an ongoing question about when to break apart outcomes and when to combine related requirements. The advantage of breaking outcomes apart is that separate outcomes raise awareness of needs and ensure critical parts are not hidden at lower levels of documentation. The disadvantage of creating separate outcomes is the sheer number of resulting outcomes which may feel overwhelming. Groups should remain aware of this tension and document the rationale for breaking outcomes apart. Conversely, combining outcomes as “outcome A and outcome B” may result in outcome B being overlooked + +### Summary + +Coming soon + +
+
+
Platform:
+
Any platform supporting HTML
+
+
+
Technology:
+
HTML
+
+
+ +### How it solves user need + +Coming soon \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-described/methods/clear-language-errors/test.md b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/test.md new file mode 100644 index 0000000..232d260 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/clear-language-errors/test.md @@ -0,0 +1,17 @@ +--- +subtitle: Test +--- + +1. Identify the type of error that has occurred + +2. Identify where the error has occurred + +3. The error message is written in clear language or has a link to a clear language explanation. “Error 10752” is a fail. + +### Applicability + +Coming soon + +### Expectation + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/methods/methods.json b/how-to/outcomes/error-notifications-described/methods/methods.json new file mode 100644 index 0000000..f25a945 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/methods/methods.json @@ -0,0 +1,3 @@ +{ + "type": "method" +} \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-described/outcome.json b/how-to/outcomes/error-notifications-described/outcome.json new file mode 100644 index 0000000..e8e0a7b --- /dev/null +++ b/how-to/outcomes/error-notifications-described/outcome.json @@ -0,0 +1,5 @@ +{ + "index": 0, + "title": "Notifications describe errors", + "description": "Provides a clear message describing the error so users understand the cause of the error." +} diff --git a/how-to/outcomes/error-notifications-described/resources.md b/how-to/outcomes/error-notifications-described/resources.md new file mode 100644 index 0000000..368fbda --- /dev/null +++ b/how-to/outcomes/error-notifications-described/resources.md @@ -0,0 +1,7 @@ +--- +title: Resources +--- + +## W3C Resources + +Coming soon diff --git a/how-to/outcomes/error-notifications-described/user-needs.md b/how-to/outcomes/error-notifications-described/user-needs.md new file mode 100644 index 0000000..bfe5e58 --- /dev/null +++ b/how-to/outcomes/error-notifications-described/user-needs.md @@ -0,0 +1,38 @@ +--- +title: User Needs +--- + +
+

{{ outcome.description }}

+
+ +## Barriers Encountered + +* No description of cause of error +* Unhelpful description of cause of error error +* Error description that is not understandable (e.g., not clear) + +## Common User Needs + +* Error message describes the error: User needs an error message describing the error so they know what went wrong. + +## Unique User Needs + +* N/A + +## Functional Needs + +* Essential +* Sensory - Vision and Visual +* Sensory - Sensory Intersections +* Cognitive - Attention +* Cognitive - Language and Literacy +* Cognitive - Learning +* Cognitive - Memory +* Cognitive - Executive +* Cognitive - Mental Health +* Cognitive - Cognitive and Sensory Intersections +* Independence +* Physical - Mobility +* Physical - Motor +* Physical & Sensory Intersections \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/activities/activities.json b/how-to/outcomes/error-notifications-provided/activities/activities.json new file mode 100644 index 0000000..aeadf6c --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/activities.json @@ -0,0 +1,4 @@ +{ + "type": "activity", + "title": "Activity" +} \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/activities/design.md b/how-to/outcomes/error-notifications-provided/activities/design.md new file mode 100644 index 0000000..b0e47c2 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/design.md @@ -0,0 +1,5 @@ +--- +subtitle: Design +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/activities/develop.md b/how-to/outcomes/error-notifications-provided/activities/develop.md new file mode 100644 index 0000000..e8a7da6 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/develop.md @@ -0,0 +1,5 @@ +--- +subtitle: Develop +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/activities/edit.md b/how-to/outcomes/error-notifications-provided/activities/edit.md new file mode 100644 index 0000000..41c567a --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/edit.md @@ -0,0 +1,5 @@ +--- +subtitle: Edit +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/activities/plan.md b/how-to/outcomes/error-notifications-provided/activities/plan.md new file mode 100644 index 0000000..aa2a004 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/plan.md @@ -0,0 +1,5 @@ +--- +subtitle: Plan +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/activities/test.md b/how-to/outcomes/error-notifications-provided/activities/test.md new file mode 100644 index 0000000..bae716a --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/activities/test.md @@ -0,0 +1,5 @@ +--- +layout: layout/test-activity.md +--- + + diff --git a/how-to/outcomes/error-notifications-provided/error-notifications-provided.11tydata.js b/how-to/outcomes/error-notifications-provided/error-notifications-provided.11tydata.js new file mode 100644 index 0000000..baddaa9 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/error-notifications-provided.11tydata.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../build/get-outcome')(__dirname) +} diff --git a/how-to/outcomes/error-notifications-provided/examples.md b/how-to/outcomes/error-notifications-provided/examples.md new file mode 100644 index 0000000..8b2264a --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/examples.md @@ -0,0 +1,5 @@ +--- +title: Examples +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/index.md b/how-to/outcomes/error-notifications-provided/index.md new file mode 100644 index 0000000..eeb7edc --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/index.md @@ -0,0 +1,23 @@ +--- +title: Get Started +--- + +
+

{{ outcome.description }}

+
+ +## Summary + +Coming soon + +## Why + +Coming soon + +## Who it helps + +Coming soon + +## How + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods.md b/how-to/outcomes/error-notifications-provided/methods.md new file mode 100644 index 0000000..d2d86cc --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods.md @@ -0,0 +1,5 @@ +--- +layout: layout/methods.md +--- + + diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/background.md b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/background.md new file mode 100644 index 0000000..35176bb --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/background.md @@ -0,0 +1,17 @@ +--- +subtitle: Background +--- + +Coming soon + +### Bibliography + +- [Coming soon](https://) + +### Assumptions + +- [Coming soon](https://) + +### Accessibility Support + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/code-snippets.md b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/code-snippets.md new file mode 100644 index 0000000..eb56b89 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/code-snippets.md @@ -0,0 +1,33 @@ +--- +subtitle: Code Snippets +--- + +### Passed + +#### Passed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Failed + +#### Failed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Inapplicable + +#### Inapplicable Example 1 + +Coming soon + +```html +Code snippet +``` diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/definitions.md b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/definitions.md new file mode 100644 index 0000000..93ee43b --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/definitions.md @@ -0,0 +1,5 @@ +--- +subtitle: Technical Definitions +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/discernable-consistent-accessible.json b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/discernable-consistent-accessible.json new file mode 100644 index 0000000..53f03bf --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/discernable-consistent-accessible.json @@ -0,0 +1,8 @@ +{ + "method": { + "index": 1, + "title": "Error messages need to be discernible, consistent, and accessible", + "slug": "discernable-consistent-accessible", + "description": "" + } +} diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/index.md b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/index.md new file mode 100644 index 0000000..6af53a2 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/index.md @@ -0,0 +1,22 @@ +--- +subtitle: Introduction +--- + +### Summary + +Coming soon + +
+
+
Platform:
+
Any platform supporting HTML
+
+
+
Technology:
+
HTML
+
+
+ +### How it solves user need + +Coming soon \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/test.md b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/test.md new file mode 100644 index 0000000..6d8c886 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/discernable-consistent-accessible/test.md @@ -0,0 +1,19 @@ +--- +subtitle: Test +--- + +Can the user discern or detect the error notification? + +* Should not be off-screen or be a sound-only. + +* Is the notification semantic and meets other sections of WCAG3? + +* The notification should be consistent relative to the view, process or trigger so it is easier for a user to identify the source of the error and locate what location, window, or tab is producing the error. + +### Applicability + +Coming soon + +### Expectation + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/methods.json b/how-to/outcomes/error-notifications-provided/methods/methods.json new file mode 100644 index 0000000..f25a945 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/methods.json @@ -0,0 +1,3 @@ +{ + "type": "method" +} \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/background.md b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/background.md new file mode 100644 index 0000000..35176bb --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/background.md @@ -0,0 +1,17 @@ +--- +subtitle: Background +--- + +Coming soon + +### Bibliography + +- [Coming soon](https://) + +### Assumptions + +- [Coming soon](https://) + +### Accessibility Support + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/code-snippets.md b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/code-snippets.md new file mode 100644 index 0000000..eb56b89 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/code-snippets.md @@ -0,0 +1,33 @@ +--- +subtitle: Code Snippets +--- + +### Passed + +#### Passed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Failed + +#### Failed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Inapplicable + +#### Inapplicable Example 1 + +Coming soon + +```html +Code snippet +``` diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/definitions.md b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/definitions.md new file mode 100644 index 0000000..93ee43b --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/definitions.md @@ -0,0 +1,5 @@ +--- +subtitle: Technical Definitions +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/index.md b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/index.md new file mode 100644 index 0000000..ba9c7cb --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/index.md @@ -0,0 +1,34 @@ +--- +subtitle: Introduction +--- + +* User Agents: + * When the page load fails, the browser handles server created errors through the headers. The server can provide a page to react or the browser react. The browser-provided-page needs to be understandable. + * Browsers support `` element so authors can style it appropriately. + * Browsers can re-direct URL typos (or attacks) to common correct URLs (and inform the user when they do so.) + +* Assistive Technologies: + * Assistive Technologies need to inform users that an error notification such as a modal window is opening. + * Assistive Technologies need to support the `` element +* APIs. The spec is supported and implemented correctly. The API has to fire an event to notify the assistive technology that the event has occurred. We need to enforce that all parts of the stack cooperate. + +* Note: These should not be separate methods but should be part of ARIA or Core Accessibility API, OR we have a built out example of how all the different parts fit together coherently to realize these outcomes + +### Summary + +Coming soon + +
+
+
Platform:
+
Any platform supporting HTML
+
+
+
Technology:
+
HTML
+
+
+ +### How it solves user need + +Coming soon \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/tech-stack-notifications.json b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/tech-stack-notifications.json new file mode 100644 index 0000000..76ca5c0 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/tech-stack-notifications.json @@ -0,0 +1,8 @@ +{ + "method": { + "index": 1, + "title": "The technology stack supports notifications", + "slug": "tech-stack-notifications", + "description": "" + } +} diff --git a/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/test.md b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/test.md new file mode 100644 index 0000000..08fd19a --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/tech-stack-notifications/test.md @@ -0,0 +1,13 @@ +--- +subtitle: Test +--- + +Coming soon + +### Applicability + +Coming soon + +### Expectation + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/background.md b/how-to/outcomes/error-notifications-provided/methods/what-errors/background.md new file mode 100644 index 0000000..35176bb --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/background.md @@ -0,0 +1,17 @@ +--- +subtitle: Background +--- + +Coming soon + +### Bibliography + +- [Coming soon](https://) + +### Assumptions + +- [Coming soon](https://) + +### Accessibility Support + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/code-snippets.md b/how-to/outcomes/error-notifications-provided/methods/what-errors/code-snippets.md new file mode 100644 index 0000000..eb56b89 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/code-snippets.md @@ -0,0 +1,33 @@ +--- +subtitle: Code Snippets +--- + +### Passed + +#### Passed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Failed + +#### Failed Example 1 + +Coming soon + +```html +Code snippet +``` + +### Inapplicable + +#### Inapplicable Example 1 + +Coming soon + +```html +Code snippet +``` diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/definitions.md b/how-to/outcomes/error-notifications-provided/methods/what-errors/definitions.md new file mode 100644 index 0000000..93ee43b --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/definitions.md @@ -0,0 +1,5 @@ +--- +subtitle: Technical Definitions +--- + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/index.md b/how-to/outcomes/error-notifications-provided/methods/what-errors/index.md new file mode 100644 index 0000000..70e8211 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/index.md @@ -0,0 +1,29 @@ +--- +subtitle: Introduction +--- + +* Some errors do not require user intervention and correction of error. Users should not be interrupted for repetitive levels that don't require user action, such as a quick network connection drop. See the examples from [What to do with repetitive errors of low severity?](https://docs.google.com/document/d/1jtZaUzLi-jgmGdAypRUeJPzVz_ZUpMO0wdOrORiuO7w/edit#heading=h.8sxd4rwnfmg2) + +* If the system cannot move forward without user intervention, they should be notified. + +* If the system fails even if the user can’t fix it. If the app can’t do something, the user needs to be notified that something has gone wrong. If they can fix it, the user should be told how, and if they can’t, they should be told whatever is appropriate, even “try again in 30 minutes” + + +### Summary + +Coming soon + +
+
+
Platform:
+
Any platform supporting HTML
+
+
+
Technology:
+
HTML
+
+
+ +### How it solves user need + +Coming soon \ No newline at end of file diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/test.md b/how-to/outcomes/error-notifications-provided/methods/what-errors/test.md new file mode 100644 index 0000000..baa8bf5 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/test.md @@ -0,0 +1,15 @@ +--- +subtitle: Test +--- + +1. Identify when an error is made to make the judgement call of whether an error notification should exist (system errors as well as user errors) (see the [list of user flows](https://docs.google.com/document/d/1siHMdNk96v2DVY6sarjZCDt5-nvqvQq13bXOOYymNlw/edit#)) + +2. If an error is made, does an error notification exist? + +### Applicability + +Coming soon + +### Expectation + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/methods/what-errors/what-errors.json b/how-to/outcomes/error-notifications-provided/methods/what-errors/what-errors.json new file mode 100644 index 0000000..884a180 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/methods/what-errors/what-errors.json @@ -0,0 +1,8 @@ +{ + "method": { + "index": 1, + "title": "What errors should be notified?", + "slug": "what-errors", + "description": "" + } +} diff --git a/how-to/outcomes/error-notifications-provided/outcome.json b/how-to/outcomes/error-notifications-provided/outcome.json new file mode 100644 index 0000000..19ef581 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/outcome.json @@ -0,0 +1,5 @@ +{ + "index": 0, + "title": "Notifications provided", + "description": "Provides notification of an error so users know that an error has occurred." +} diff --git a/how-to/outcomes/error-notifications-provided/resources.md b/how-to/outcomes/error-notifications-provided/resources.md new file mode 100644 index 0000000..368fbda --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/resources.md @@ -0,0 +1,7 @@ +--- +title: Resources +--- + +## W3C Resources + +Coming soon diff --git a/how-to/outcomes/error-notifications-provided/user-needs.md b/how-to/outcomes/error-notifications-provided/user-needs.md new file mode 100644 index 0000000..4712ea3 --- /dev/null +++ b/how-to/outcomes/error-notifications-provided/user-needs.md @@ -0,0 +1,71 @@ +--- +title: User Needs +--- + +
+

{{ outcome.description }}

+
+ +## Barriers Encountered + +* No error message +* Error message that is not accessible to assistive technology (e.g., screen reader or reading assistance software) +* Error message that is not visible (e.g., not in viewport) +* Error message that is not identifiable (e.g., not recognizable as an error message) +* Error message that is not legible (e.g., not distinguishable) + +## Common User Needs + +* Error message: User needs an error message when an error occurs so they know something went wrong. +* Notification of changed values: User needs form to notify them when it changes values so they can review and verify accuracy of any changes to data. + +## Unique User Needs + +* Visual notification: User needs a visual notification so they know something went wrong. +* Error message displays in viewport: User needs an error message that displays in the viewport so they can identify the error message and access the content with screen magnification. +* High-contrast error message: User needs a prominent high-contrast error message so they can identify the error message. +* Error message visually identifiable without symbols: User needs an error message that is identifiable without symbols so they can identify the error message. +* Error message visually identifiable without text: User needs an error message that is identifiable without text so they can identify the error message. +* Error message in consistent interface: User needs an error message with a consistent interface so they know they are interacting with the same digital product. + +## Barriers Encountered + +* Error source is not visually identified +* Error source is not programmatically identified +* Error source is not programmatically associated with error message +* Error source is not accessible to assistive technology +* Error source indicator is not identifiable (e.g., not recognizable as an error source indicator) +* Error source indicator is not legible (e.g., not distinguishable) +* Error notification does not occur at time of error +* Time-limited error notification limits access to instructions +* Error source visual label is not the same as its programmatic label, making it difficult to move focus using speech +* Error message doesn’t match source: Error message provides a different, ambiguous, or incomplete field label than the searchable visual label, making it difficult to search for the term in the form. + +## Common User Needs + +* Visual error source indicator: User needs a visual indicator of the error source so they know which component is the source of the error. +* Error message provided when error occurs: User needs an error message that is provided when the error occurs so they can readily refocus on the source of the error. +* Error message persists: User needs an error message that persists until the error is remedied so they can access the remedy instructions for as long as it takes to address the error. +* Error message linked to error source: User needs an error message that is linked to the error source so they can readily move focus to invalid inputs to correct them. +* Error message focused on reload: User needs an error message that is focused when the page reloads so they know there was an error + +## Unique User Needs + +* High-contrast error source indicator: User needs a prominent high-contrast error source indicator so they can identify the error source. + +## Functional Needs + +* Essential +* Sensory - Vision and Visual +* Sensory - Sensory Intersections +* Cognitive - Attention +* Cognitive - Language and Literacy +* Cognitive - Learning +* Cognitive - Memory +* Cognitive - Executive +* Cognitive - Mental Health +* Cognitive - Cognitive and Sensory Intersections +* Independence +* Physical - Mobility +* Physical - Motor +* Physical & Sensory Intersections diff --git a/how-to/outcomes/error-remedy-instructions/activities/activities.json b/how-to/outcomes/error-remedy-instructions/activities/activities.json new file mode 100644 index 0000000..aeadf6c --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/activities.json @@ -0,0 +1,4 @@ +{ + "type": "activity", + "title": "Activity" +} \ No newline at end of file diff --git a/how-to/outcomes/error-remedy-instructions/activities/design.md b/how-to/outcomes/error-remedy-instructions/activities/design.md new file mode 100644 index 0000000..b0e47c2 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/design.md @@ -0,0 +1,5 @@ +--- +subtitle: Design +--- + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/activities/develop.md b/how-to/outcomes/error-remedy-instructions/activities/develop.md new file mode 100644 index 0000000..e8a7da6 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/develop.md @@ -0,0 +1,5 @@ +--- +subtitle: Develop +--- + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/activities/edit.md b/how-to/outcomes/error-remedy-instructions/activities/edit.md new file mode 100644 index 0000000..41c567a --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/edit.md @@ -0,0 +1,5 @@ +--- +subtitle: Edit +--- + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/activities/plan.md b/how-to/outcomes/error-remedy-instructions/activities/plan.md new file mode 100644 index 0000000..aa2a004 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/plan.md @@ -0,0 +1,5 @@ +--- +subtitle: Plan +--- + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/activities/test.md b/how-to/outcomes/error-remedy-instructions/activities/test.md new file mode 100644 index 0000000..bae716a --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/activities/test.md @@ -0,0 +1,5 @@ +--- +layout: layout/test-activity.md +--- + + diff --git a/how-to/outcomes/error-remedy-instructions/error-remedy-instructions.11tydata.js b/how-to/outcomes/error-remedy-instructions/error-remedy-instructions.11tydata.js new file mode 100644 index 0000000..baddaa9 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/error-remedy-instructions.11tydata.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../build/get-outcome')(__dirname) +} diff --git a/how-to/outcomes/error-remedy-instructions/examples.md b/how-to/outcomes/error-remedy-instructions/examples.md new file mode 100644 index 0000000..8b2264a --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/examples.md @@ -0,0 +1,5 @@ +--- +title: Examples +--- + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/index.md b/how-to/outcomes/error-remedy-instructions/index.md new file mode 100644 index 0000000..eeb7edc --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/index.md @@ -0,0 +1,23 @@ +--- +title: Get Started +--- + +
+

{{ outcome.description }}

+
+ +## Summary + +Coming soon + +## Why + +Coming soon + +## Who it helps + +Coming soon + +## How + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/methods.md b/how-to/outcomes/error-remedy-instructions/methods.md new file mode 100644 index 0000000..d2d86cc --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/methods.md @@ -0,0 +1,5 @@ +--- +layout: layout/methods.md +--- + + diff --git a/how-to/outcomes/error-remedy-instructions/methods/methods.json b/how-to/outcomes/error-remedy-instructions/methods/methods.json new file mode 100644 index 0000000..f25a945 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/methods/methods.json @@ -0,0 +1,3 @@ +{ + "type": "method" +} \ No newline at end of file diff --git a/how-to/outcomes/error-remedy-instructions/outcome.json b/how-to/outcomes/error-remedy-instructions/outcome.json new file mode 100644 index 0000000..bb8ac99 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/outcome.json @@ -0,0 +1,5 @@ +{ + "index": 0, + "title": "Instructions provided to remedy errors", + "description": "Provides instructions in response to an error so users know what steps to take to remedy the error." +} diff --git a/how-to/outcomes/error-remedy-instructions/resources.md b/how-to/outcomes/error-remedy-instructions/resources.md new file mode 100644 index 0000000..368fbda --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/resources.md @@ -0,0 +1,7 @@ +--- +title: Resources +--- + +## W3C Resources + +Coming soon diff --git a/how-to/outcomes/error-remedy-instructions/user-needs.md b/how-to/outcomes/error-remedy-instructions/user-needs.md new file mode 100644 index 0000000..e3af8b9 --- /dev/null +++ b/how-to/outcomes/error-remedy-instructions/user-needs.md @@ -0,0 +1,40 @@ +--- +title: User Needs +--- + +
+

{{ outcome.description }}

+
+ +## Barriers Encountered + +* No remedy instructions +* Unhelpful remedy instructions +* Remedy instructions that are not understandable (e.g., not clear) + +## Common User Needs + +* Error message includes remedy instructions: User needs an error message describing the remedy so they know how to recover from the error. +* Error message with remedy instructions displays at source of error: User needs an error message that displays at the source of the error so they can access the remedy instructions while focused on the source of the error. + +## Unique User Needs + +* Programmatically associated error message and source of error: User needs an error message that is programmatically associated with the source of the error so they can access the remedy instructions while focused on the source of the error. +* Reassuring remedy instructions: User needs reassuring remedy instructions so they can have confidence they can resolve the error. + +## Functional Needs + +* Essential +* Sensory - Vision and Visual +* Sensory - Sensory Intersections +* Cognitive - Attention +* Cognitive - Language and Literacy +* Cognitive - Learning +* Cognitive - Memory +* Cognitive - Executive +* Cognitive - Mental Health +* Cognitive - Cognitive and Sensory Intersections +* Independence +* Physical - Mobility +* Physical - Motor +* Physical & Sensory Intersections diff --git a/how-to/outcomes/timely-targeted-guidance/activities/activities.json b/how-to/outcomes/timely-targeted-guidance/activities/activities.json new file mode 100644 index 0000000..aeadf6c --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/activities.json @@ -0,0 +1,4 @@ +{ + "type": "activity", + "title": "Activity" +} \ No newline at end of file diff --git a/how-to/outcomes/timely-targeted-guidance/activities/design.md b/how-to/outcomes/timely-targeted-guidance/activities/design.md new file mode 100644 index 0000000..b0e47c2 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/design.md @@ -0,0 +1,5 @@ +--- +subtitle: Design +--- + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/activities/develop.md b/how-to/outcomes/timely-targeted-guidance/activities/develop.md new file mode 100644 index 0000000..e8a7da6 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/develop.md @@ -0,0 +1,5 @@ +--- +subtitle: Develop +--- + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/activities/edit.md b/how-to/outcomes/timely-targeted-guidance/activities/edit.md new file mode 100644 index 0000000..41c567a --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/edit.md @@ -0,0 +1,5 @@ +--- +subtitle: Edit +--- + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/activities/plan.md b/how-to/outcomes/timely-targeted-guidance/activities/plan.md new file mode 100644 index 0000000..aa2a004 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/plan.md @@ -0,0 +1,5 @@ +--- +subtitle: Plan +--- + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/activities/test.md b/how-to/outcomes/timely-targeted-guidance/activities/test.md new file mode 100644 index 0000000..bae716a --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/activities/test.md @@ -0,0 +1,5 @@ +--- +layout: layout/test-activity.md +--- + + diff --git a/how-to/outcomes/timely-targeted-guidance/examples.md b/how-to/outcomes/timely-targeted-guidance/examples.md new file mode 100644 index 0000000..8b2264a --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/examples.md @@ -0,0 +1,5 @@ +--- +title: Examples +--- + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/index.md b/how-to/outcomes/timely-targeted-guidance/index.md new file mode 100644 index 0000000..eeb7edc --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/index.md @@ -0,0 +1,23 @@ +--- +title: Get Started +--- + +
+

{{ outcome.description }}

+
+ +## Summary + +Coming soon + +## Why + +Coming soon + +## Who it helps + +Coming soon + +## How + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/methods.md b/how-to/outcomes/timely-targeted-guidance/methods.md new file mode 100644 index 0000000..d2d86cc --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/methods.md @@ -0,0 +1,5 @@ +--- +layout: layout/methods.md +--- + + diff --git a/how-to/outcomes/timely-targeted-guidance/methods/methods.json b/how-to/outcomes/timely-targeted-guidance/methods/methods.json new file mode 100644 index 0000000..f25a945 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/methods/methods.json @@ -0,0 +1,3 @@ +{ + "type": "method" +} \ No newline at end of file diff --git a/how-to/outcomes/timely-targeted-guidance/outcome.json b/how-to/outcomes/timely-targeted-guidance/outcome.json new file mode 100644 index 0000000..1657c4f --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/outcome.json @@ -0,0 +1,5 @@ +{ + "index": 0, + "title": "Timely and targeted guidance", + "description": "Provides notification when the error occurs and identifies the source of error so users can readily refocus and remedy the error." +} diff --git a/how-to/outcomes/timely-targeted-guidance/resources.md b/how-to/outcomes/timely-targeted-guidance/resources.md new file mode 100644 index 0000000..368fbda --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/resources.md @@ -0,0 +1,7 @@ +--- +title: Resources +--- + +## W3C Resources + +Coming soon diff --git a/how-to/outcomes/timely-targeted-guidance/timely-targeted-guidance.11tydata.js b/how-to/outcomes/timely-targeted-guidance/timely-targeted-guidance.11tydata.js new file mode 100644 index 0000000..baddaa9 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/timely-targeted-guidance.11tydata.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../build/get-outcome')(__dirname) +} diff --git a/how-to/outcomes/timely-targeted-guidance/user-needs.md b/how-to/outcomes/timely-targeted-guidance/user-needs.md new file mode 100644 index 0000000..7351374 --- /dev/null +++ b/how-to/outcomes/timely-targeted-guidance/user-needs.md @@ -0,0 +1,49 @@ +--- +title: User Needs +--- + +
+

{{ outcome.description }}

+
+ +## Barriers Encountered + +* Error source is not visually identified +* Error source is not programmatically identified +* Error source is not programmatically associated with error message +* Error source is not accessible to assistive technology +* Error source indicator is not identifiable (e.g., not recognizable as an error source indicator) +* Error source indicator is not legible (e.g., not distinguishable) +* Error notification does not occur at time of error +* Time-limited error notification limits access to instructions +* Error source visual label is not the same as its programmatic label, making it difficult to move focus using speech +* Error message doesn’t match source: Error message provides a different, ambiguous, or incomplete field label than the searchable visual label, making it difficult to search for the term in the form. + +## Common User Needs + +* Visual error source indicator: User needs a visual indicator of the error source so they know which component is the source of the error. +* Error message provided when error occurs: User needs an error message that is provided when the error occurs so they can readily refocus on the source of the error. +* Error message persists: User needs an error message that persists until the error is remedied so they can access the remedy instructions for as long as it takes to address the error. +* Error message linked to error source: User needs an error message that is linked to the error source so they can readily move focus to invalid inputs to correct them. +* Error message focused on reload: User needs an error message that is focused when the page reloads so they know there was an error + +## Unique User Needs + +* High-contrast error source indicator: User needs a prominent high-contrast error source indicator so they can identify the error source. + +## Functional Needs + +* Essential +* Sensory - Vision and Visual +* Sensory - Sensory Intersections +* Cognitive - Attention +* Cognitive - Language and Literacy +* Cognitive - Learning +* Cognitive - Memory +* Cognitive - Executive +* Cognitive - Mental Health +* Cognitive - Cognitive and Sensory Intersections +* Independence +* Physical - Mobility +* Physical - Motor +* Physical & Sensory Intersections