diff --git a/.github/workflows/pr-create.yml b/.github/workflows/pr-create.yml index 3a1ae24f9..3d71d16c1 100644 --- a/.github/workflows/pr-create.yml +++ b/.github/workflows/pr-create.yml @@ -46,6 +46,26 @@ jobs: - name: Update git submodules run: | + # Deinit and reinit submodules + echo "Deinitializing existing submodules..." + git submodule deinit -f "_external/aria-practices" || true + git submodule deinit -f "_external/data" || true + + # Remove stale directories + if [ -d "_external/aria-practices" ]; then + echo "Removing stale aria-practices directory..." + rm -rf "_external/aria-practices" + fi + if [ -d "_external/data" ]; then + echo "Removing stale data directory..." + rm -rf "_external/data" + fi + + # Reinitialize submodules + echo "Initializing submodules..." + git submodule update --init --recursive + + # Update from remote and handle fork if exists git submodule update --recursive --remote cd _external/aria-practices if [ -n "${{ github.event.inputs.fork_path }}" ] && [ "${{ github.event.inputs.fork_path }}" != 'false' ]; then @@ -69,32 +89,52 @@ jobs: # Handle cases where the aria-practices submodule has conflicts to be handled; # _external/data shouldn't have conflicting changes - if [ -d "_external/aria-practices" ] && { [ -f ".git/rebase-apply" ] || [ -d ".git/rebase-merge" ]; }; then + while { [ -f ".git/rebase-apply" ] || [ -d ".git/rebase-merge" ]; }; do echo "Handling submodule conflicts..." - cd _external/aria-practices - # Resolve the conflict - git fetch origin - git merge origin/main + # Handle submodule conflicts first if they exist + if [ -d "_external/aria-practices" ]; then + echo "Checking for submodule conflicts..." + cd _external/aria-practices - # Add resolved submodule from project root - cd - - git add _external/aria-practices + # If submodule has conflicts, resolve them + if [ -f ".git/MERGE_HEAD" ] || [ -d ".git/rebase-merge" ] || [ -f ".git/rebase-apply" ]; then + echo "Resolving submodule conflicts..." + git fetch origin + git merge origin/main + fi - # Continue the rebase - GIT_EDITOR=true git rebase --continue || true + # Add resolved submodule from project root + cd - + git add _external/aria-practices + fi # Resolve conflicts for all other conflicting files automatically using 'theirs' from project root + echo "Resolving file conflicts..." git diff --name-only --diff-filter=U | while read -r file; do + echo "Resolving conflict in: $file" git checkout --theirs "$file" git add "$file" done # Continue the rebase - GIT_EDITOR=true git rebase --continue || true - else - echo "No submodule conflicts detected or no rebase in progress." - fi + echo "Continuing rebase..." + GIT_EDITOR=true git rebase --continue || { + echo "Rebase continue failed, checking if more conflicts exist..." + # If rebase failed, check if due to more conflicts + if { [ -f ".git/rebase-apply" ] || [ -d ".git/rebase-merge" ]; }; then + echo "More conflicts detected, continuing to resolve..." + continue + else + echo "Rebase completed or failed for other reasons" + break + fi + } + + echo "Submodule conflicts fix step completed successfully" + done + + echo "No submodule conflicts detected or no rebase in progress" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitmodules b/.gitmodules index 8e8f4fae1..37422b8ed 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "_external/aria-practices"] path = _external/aria-practices url = https://github.com/w3c/aria-practices.git - branch = main + branch = main [submodule "_external/data"] path = _external/data url = https://github.com/w3c/wai-website-data.git diff --git a/ARIA/apg/about/change-history/change-history.md b/ARIA/apg/about/change-history/change-history.md index 53cdf5913..27293b80f 100644 --- a/ARIA/apg/about/change-history/change-history.md +++ b/ARIA/apg/about/change-history/change-history.md @@ -79,7 +79,7 @@ lang: en
  • Improved support for high contrast settings and added detailed documentation of high contrast support in many examples.
  • Improved support for touch-based screen readers in several examples, most notably in sliders.
  • Due to change in ARIA 1.2, removed Math role from list of roles that have presentational children.
  • -
  • Developed a comprehensive set of coding standards for HTML, CSS, and Javascript for the APG and updated a significant portion of content to conform with the standards.
  • +
  • Developed a comprehensive set of coding standards for HTML, CSS, and JavaScript for the APG and updated a significant portion of content to conform with the standards.
  • In response to feedback, fixed many documentation errors and functional bugs in examples.
  • Comprehensive lists of closed issues included in APG 1.2 release 1 are tracked in the following GitHub milestones.

    diff --git a/ARIA/apg/about/coverage-and-quality/coverage-and-quality-report.md b/ARIA/apg/about/coverage-and-quality/coverage-and-quality-report.md index d3484d5aa..ff32dd31f 100644 --- a/ARIA/apg/about/coverage-and-quality/coverage-and-quality-report.md +++ b/ARIA/apg/about/coverage-and-quality/coverage-and-quality-report.md @@ -69,7 +69,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
    -

    Page last updated: July 8, 2025

    +

    Page last updated: September 18, 2025

    About These Reports

    @@ -108,8 +108,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

  • Roles with no Guidance or Examples (28)
  • Roles with at Least One Guidance or Example (12)
  • Roles with More than One Guidance or Example (38)
  • -
  • Properties and States with no Examples (12)
  • -
  • Properties and States with One Examples (8)
  • +
  • Properties and States with no Examples (10)
  • +
  • Properties and States with One Examples (10)
  • Properties and States with More than One Example (28)
  • Example Coding Practices
  • @@ -420,7 +420,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Listbox with Grouped Options
  • Editor Menubar (HC)
  • Color Viewer Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Switch Using HTML Button (HC)
  • File Directory Treeview Using Computed Properties
  • File Directory Treeview Using Declared Properties
  • @@ -575,6 +575,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Note
  • Note
  • Note
  • +
  • Note
  • Note
  • @@ -680,7 +681,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); Spinbutton Pattern @@ -779,15 +781,13 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
    -

    Properties and States with No Guidance or Examples (12)

    +

    Properties and States with No Guidance or Examples (10)

    NOTE: The HC abbreviation means example has High Contrast support.
    -

    Properties and States with at Least One Guidance or Example (8)

    +

    Properties and States with at Least One Guidance or Example (10)

    NOTE: The HC abbreviation means example has High Contrast support.
    @@ -833,6 +833,18 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); + + + + + + + + + + @@ -952,6 +964,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Actions Menu Button Using aria-activedescendant (HC)
  • Actions Menu Button Using element.focus() (HC)
  • Navigation Menu Button (HC)
  • +
  • Quantity Spin Button
  • Experimental Tabs with Action Buttons (HC)
  • Tabs with Automatic Activation (HC)
  • Tabs with Manual Activation (HC)
  • @@ -991,6 +1004,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); @@ -1055,7 +1069,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Switch Using HTML Button (HC)
  • Switch Using HTML Checkbox Input (HC)
  • Switch (HC)
  • @@ -1082,7 +1097,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Navigation Menubar (HC)
  • Rating Radio Group (HC)
  • Horizontal Multi-Thumb Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Table
  • Toolbar
  • Treegrid Email Inbox
  • @@ -1122,7 +1137,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Switch Using HTML Button (HC)
  • Experimental Tabs with Action Buttons (HC)
  • Tabs with Automatic Activation (HC)
  • @@ -1275,7 +1290,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • @@ -1290,7 +1306,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • @@ -1306,7 +1323,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • @@ -1319,7 +1337,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Toolbar
  • @@ -1335,7 +1353,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + @@ -1347,7 +1365,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + @@ -1364,7 +1382,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + @@ -1391,9 +1409,9 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + - + @@ -2011,7 +2029,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + @@ -2023,6 +2041,19 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); + + + + + + + + + + + + + @@ -2509,13 +2540,21 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); - + + + + + + + + + diff --git a/ARIA/apg/index/index.md b/ARIA/apg/index/index.md index aa4ff463c..d24e8f300 100644 --- a/ARIA/apg/index/index.md +++ b/ARIA/apg/index/index.md @@ -214,7 +214,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Listbox with Grouped Options
  • Editor Menubar (HC)
  • Color Viewer Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Switch Using HTML Button (HC)
  • File Directory Treeview Using Computed Properties
  • File Directory Treeview Using Declared Properties
  • @@ -409,7 +409,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); @@ -583,6 +584,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Actions Menu Button Using aria-activedescendant (HC)
  • Actions Menu Button Using element.focus() (HC)
  • Navigation Menu Button (HC)
  • +
  • Quantity Spin Button
  • Tabs with Automatic Activation (HC)
  • Tabs with Manual Activation (HC)
  • Toolbar
  • @@ -620,10 +622,15 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); + + + + + + + + @@ -923,7 +936,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • @@ -938,7 +952,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • @@ -950,7 +965,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Toolbar
  • diff --git a/ARIA/apg/patterns/accordion/accordion-pattern.md b/ARIA/apg/patterns/accordion/accordion-pattern.md index c0c7b8c4e..572e01a6a 100644 --- a/ARIA/apg/patterns/accordion/accordion-pattern.md +++ b/ARIA/apg/patterns/accordion/accordion-pattern.md @@ -146,4 +146,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/alert/alert-pattern.md b/ARIA/apg/patterns/alert/alert-pattern.md index 962b18168..53f24032d 100644 --- a/ARIA/apg/patterns/alert/alert-pattern.md +++ b/ARIA/apg/patterns/alert/alert-pattern.md @@ -102,4 +102,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/alert/examples/alert.md b/ARIA/apg/patterns/alert/examples/alert.md index a02d52284..3d6bef704 100644 --- a/ARIA/apg/patterns/alert/examples/alert.md +++ b/ARIA/apg/patterns/alert/examples/alert.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/alert/examples/alert/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -205,7 +205,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); alert.css
  • - Javascript: + JavaScript: alert.js
  • diff --git a/ARIA/apg/patterns/alertdialog/alertdialog-pattern.md b/ARIA/apg/patterns/alertdialog/alertdialog-pattern.md index 86ac2b65b..2e0801a8e 100644 --- a/ARIA/apg/patterns/alertdialog/alertdialog-pattern.md +++ b/ARIA/apg/patterns/alertdialog/alertdialog-pattern.md @@ -108,4 +108,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/alertdialog/examples/alertdialog.md b/ARIA/apg/patterns/alertdialog/examples/alertdialog.md index 5fea615e3..9d9373883 100644 --- a/ARIA/apg/patterns/alertdialog/examples/alertdialog.md +++ b/ARIA/apg/patterns/alertdialog/examples/alertdialog.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/alertdialog/examples/alertdialog/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -289,10 +289,10 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
    -

    Javascript and CSS Source Code

    +

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/breadcrumb/breadcrumb-pattern.md b/ARIA/apg/patterns/breadcrumb/breadcrumb-pattern.md index 7c91cb937..a2ade34c7 100644 --- a/ARIA/apg/patterns/breadcrumb/breadcrumb-pattern.md +++ b/ARIA/apg/patterns/breadcrumb/breadcrumb-pattern.md @@ -97,4 +97,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/button/button-pattern.md b/ARIA/apg/patterns/button/button-pattern.md index 2b6478e59..9b75dc901 100644 --- a/ARIA/apg/patterns/button/button-pattern.md +++ b/ARIA/apg/patterns/button/button-pattern.md @@ -154,4 +154,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/button/examples/button.md b/ARIA/apg/patterns/button/examples/button.md index d80417887..37dccc3be 100644 --- a/ARIA/apg/patterns/button/examples/button.md +++ b/ARIA/apg/patterns/button/examples/button.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/button/examples/button/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -263,7 +263,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); button.css
  • - Javascript: + JavaScript: button.js
  • diff --git a/ARIA/apg/patterns/button/examples/button_idl.md b/ARIA/apg/patterns/button/examples/button_idl.md index 2a72a7859..13caec8a7 100644 --- a/ARIA/apg/patterns/button/examples/button_idl.md +++ b/ARIA/apg/patterns/button/examples/button_idl.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/button/examples/button_idl/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -256,7 +256,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); button.css
  • - Javascript: + JavaScript: button_idl.js
  • diff --git a/ARIA/apg/patterns/carousel/carousel-pattern.md b/ARIA/apg/patterns/carousel/carousel-pattern.md index 59660148f..4a6f6fee6 100644 --- a/ARIA/apg/patterns/carousel/carousel-pattern.md +++ b/ARIA/apg/patterns/carousel/carousel-pattern.md @@ -70,7 +70,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    Ensuring all users can easily control and are not adversely affected by slide rotation is an essential aspect of making carousels accessible. For instance, the screen reader experience can be confusing and disorienting if slides that are not visible on screen are incorrectly hidden, e.g., displayed off-screen. - Similarly, if slides rotate automatically and a screen reader user is not aware of the rotation, the user may read an element on slide one, execute the screen reader command for next element, and, instead of hearing the next element on slide one, hear an element from slide 2 without any knowledge that the element just announced is from an entirely new context. + Similarly, if slides rotate automatically and a screen reader user is not aware of the rotation, the user may read an element on slide 1, execute the screen reader command for next element, and, instead of hearing the next element on slide 1, hear an element from slide 2 without any knowledge that the element just announced is from an entirely new context.

    Features needed to provide sufficient rotation control include:

      @@ -233,4 +233,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next.md b/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next.md index 20fe23e53..69273e209 100644 --- a/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next.md +++ b/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/carousel/examples/carousel-1-prev-next/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -585,7 +585,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

      JavaScript and CSS Source Code

      diff --git a/ARIA/apg/patterns/carousel/examples/carousel-2-tablist.md b/ARIA/apg/patterns/carousel/examples/carousel-2-tablist.md index d20300b28..864f1d25f 100644 --- a/ARIA/apg/patterns/carousel/examples/carousel-2-tablist.md +++ b/ARIA/apg/patterns/carousel/examples/carousel-2-tablist.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/carousel/examples/carousel-2-tablist/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -769,7 +769,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

      JavaScript and CSS Source Code

      diff --git a/ARIA/apg/patterns/checkbox/checkbox-pattern.md b/ARIA/apg/patterns/checkbox/checkbox-pattern.md index c9e280290..957e16b3f 100644 --- a/ARIA/apg/patterns/checkbox/checkbox-pattern.md +++ b/ARIA/apg/patterns/checkbox/checkbox-pattern.md @@ -122,4 +122,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/checkbox/examples/checkbox-mixed.md b/ARIA/apg/patterns/checkbox/examples/checkbox-mixed.md index a543bd288..cfa778e49 100644 --- a/ARIA/apg/patterns/checkbox/examples/checkbox-mixed.md +++ b/ARIA/apg/patterns/checkbox/examples/checkbox-mixed.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/checkbox/examples/checkbox-mixed/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -267,7 +267,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

      JavaScript and CSS Source Code

      diff --git a/ARIA/apg/patterns/checkbox/examples/checkbox.md b/ARIA/apg/patterns/checkbox/examples/checkbox.md index c1599cb62..478e0f7b4 100644 --- a/ARIA/apg/patterns/checkbox/examples/checkbox.md +++ b/ARIA/apg/patterns/checkbox/examples/checkbox.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/checkbox/examples/checkbox/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -254,7 +254,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

      JavaScript and CSS Source Code

      diff --git a/ARIA/apg/patterns/combobox/combobox-pattern.md b/ARIA/apg/patterns/combobox/combobox-pattern.md index 6a6fbd4ed..77a640d2e 100644 --- a/ARIA/apg/patterns/combobox/combobox-pattern.md +++ b/ARIA/apg/patterns/combobox/combobox-pattern.md @@ -509,4 +509,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-both.md b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-both.md index 746b286dd..ba286e6f0 100644 --- a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-both.md +++ b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-both.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/combobox-autocomplete-both/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -588,7 +588,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); combobox-autocomplete.css
    • - Javascript: + JavaScript: combobox-autocomplete.js
    diff --git a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list.md b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list.md index b9cec4923..8cb5a0d56 100644 --- a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list.md +++ b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -582,7 +582,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); combobox-autocomplete.css
  • - Javascript: + JavaScript: combobox-autocomplete.js
  • diff --git a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-none.md b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-none.md index 2dac0088d..762cd7752 100644 --- a/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-none.md +++ b/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-none.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/combobox-autocomplete-none/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -524,7 +524,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); combobox-autocomplete.css
  • - Javascript: + JavaScript: combobox-autocomplete.js
  • diff --git a/ARIA/apg/patterns/combobox/examples/combobox-datepicker.md b/ARIA/apg/patterns/combobox/examples/combobox-datepicker.md index c32d6c910..63975bd7a 100644 --- a/ARIA/apg/patterns/combobox/examples/combobox-datepicker.md +++ b/ARIA/apg/patterns/combobox/examples/combobox-datepicker.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/combobox-datepicker/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -772,7 +772,7 @@ Moves focus to the day of the month that has the same number. combobox-datepicker.css
  • - Javascript: + JavaScript: combobox-datepicker.js
  • diff --git a/ARIA/apg/patterns/combobox/examples/combobox-select-only.md b/ARIA/apg/patterns/combobox/examples/combobox-select-only.md index f52b576bf..2d8b01879 100644 --- a/ARIA/apg/patterns/combobox/examples/combobox-select-only.md +++ b/ARIA/apg/patterns/combobox/examples/combobox-select-only.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/combobox-select-only/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -464,7 +464,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); select-only.css
  • - Javascript: + JavaScript: select-only.js
  • diff --git a/ARIA/apg/patterns/combobox/examples/grid-combo.md b/ARIA/apg/patterns/combobox/examples/grid-combo.md index 0bf41fc1a..165c86ef8 100644 --- a/ARIA/apg/patterns/combobox/examples/grid-combo.md +++ b/ARIA/apg/patterns/combobox/examples/grid-combo.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/combobox/examples/grid-combo/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -445,7 +445,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/dialog-modal/dialog-modal-pattern.md b/ARIA/apg/patterns/dialog-modal/dialog-modal-pattern.md index af519b3e4..78a28e84d 100644 --- a/ARIA/apg/patterns/dialog-modal/dialog-modal-pattern.md +++ b/ARIA/apg/patterns/dialog-modal/dialog-modal-pattern.md @@ -209,4 +209,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog.md b/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog.md index 852ba4db1..f12fe6292 100644 --- a/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog.md +++ b/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -706,7 +706,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); datepicker-dialog.css
  • - Javascript: + JavaScript: datepicker-dialog.js
  • diff --git a/ARIA/apg/patterns/dialog-modal/examples/dialog.md b/ARIA/apg/patterns/dialog-modal/examples/dialog.md index ba7b0ac42..985622bc6 100644 --- a/ARIA/apg/patterns/dialog-modal/examples/dialog.md +++ b/ARIA/apg/patterns/dialog-modal/examples/dialog.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/dialog-modal/examples/dialog/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -411,7 +411,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); dialog.css
  • - Javascript: + JavaScript: dialog.js, utils.js
  • diff --git a/ARIA/apg/patterns/disclosure/disclosure-pattern.md b/ARIA/apg/patterns/disclosure/disclosure-pattern.md index b428d1ced..31bf8b93c 100644 --- a/ARIA/apg/patterns/disclosure/disclosure-pattern.md +++ b/ARIA/apg/patterns/disclosure/disclosure-pattern.md @@ -110,4 +110,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/disclosure/examples/disclosure-faq.md b/ARIA/apg/patterns/disclosure/examples/disclosure-faq.md index fe0fc2df9..65c505c57 100644 --- a/ARIA/apg/patterns/disclosure/examples/disclosure-faq.md +++ b/ARIA/apg/patterns/disclosure/examples/disclosure-faq.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/disclosure/examples/disclosure-faq/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -274,7 +274,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); disclosure-faq.css
  • - Javascript: + JavaScript: disclosureButton.js
  • diff --git a/ARIA/apg/patterns/disclosure/examples/disclosure-image-description.md b/ARIA/apg/patterns/disclosure/examples/disclosure-image-description.md index b3ae5df9e..465cad179 100644 --- a/ARIA/apg/patterns/disclosure/examples/disclosure-image-description.md +++ b/ARIA/apg/patterns/disclosure/examples/disclosure-image-description.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/disclosure/examples/disclosure-image-description/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -421,7 +421,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); disclosure-img-long-description.css
  • - Javascript: + JavaScript: disclosureButton.js
  • diff --git a/ARIA/apg/patterns/disclosure/examples/disclosure-navigation-hybrid.md b/ARIA/apg/patterns/disclosure/examples/disclosure-navigation-hybrid.md index e564cf570..74969f046 100644 --- a/ARIA/apg/patterns/disclosure/examples/disclosure-navigation-hybrid.md +++ b/ARIA/apg/patterns/disclosure/examples/disclosure-navigation-hybrid.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/disclosure/examples/disclosure-navigation-hybrid/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -424,7 +424,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); disclosure-navigation.css
  • - Javascript: + JavaScript: disclosureMenu.js
  • diff --git a/ARIA/apg/patterns/disclosure/examples/disclosure-navigation.md b/ARIA/apg/patterns/disclosure/examples/disclosure-navigation.md index f4a15098d..076357e51 100644 --- a/ARIA/apg/patterns/disclosure/examples/disclosure-navigation.md +++ b/ARIA/apg/patterns/disclosure/examples/disclosure-navigation.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/disclosure/examples/disclosure-navigation/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -419,7 +419,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); disclosure-navigation.css
  • - Javascript: + JavaScript: disclosureMenu.js
  • diff --git a/ARIA/apg/patterns/feed/examples/feed.md b/ARIA/apg/patterns/feed/examples/feed.md index 7a5cba1a9..ebc9f9a8f 100644 --- a/ARIA/apg/patterns/feed/examples/feed.md +++ b/ARIA/apg/patterns/feed/examples/feed.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/feed/examples/feed/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -265,10 +265,10 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    -

    The following Javascript and CSS is used by the feed-display.html page:

    +

    The following JavaScript and CSS is used by the feed-display.html page:

    diff --git a/ARIA/apg/patterns/feed/feed-pattern.md b/ARIA/apg/patterns/feed/feed-pattern.md index c0c9f39db..2945d246c 100644 --- a/ARIA/apg/patterns/feed/feed-pattern.md +++ b/ARIA/apg/patterns/feed/feed-pattern.md @@ -180,4 +180,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/grid/examples/advanced-data-grid.md b/ARIA/apg/patterns/grid/examples/advanced-data-grid.md index 3d52ca8a2..c0cb913f7 100644 --- a/ARIA/apg/patterns/grid/examples/advanced-data-grid.md +++ b/ARIA/apg/patterns/grid/examples/advanced-data-grid.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/grid/examples/advanced-data-grid/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -189,7 +189,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • - Javascript: + JavaScript:
  • diff --git a/ARIA/apg/patterns/grid/grid-pattern.md b/ARIA/apg/patterns/grid/grid-pattern.md index abafc7fa6..c3aecbc38 100644 --- a/ARIA/apg/patterns/grid/grid-pattern.md +++ b/ARIA/apg/patterns/grid/grid-pattern.md @@ -389,7 +389,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); Otherwise, passes the key event to the focused widget.
  • - Left Arrow or Up Arrow: If the cell contains multiple widgets, moves focus to the previous widget inside the cell, optionally wrapping to the first widget if focus is on the last widget. + Left Arrow or Up Arrow: If the cell contains multiple widgets, moves focus to the previous widget inside the cell, optionally wrapping to the last widget if focus is on the first widget. Otherwise, passes the key event to the focused widget.
  • @@ -468,4 +468,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/landmarks/landmarks-pattern.md b/ARIA/apg/patterns/landmarks/landmarks-pattern.md index bd35d8701..c61f7e43a 100644 --- a/ARIA/apg/patterns/landmarks/landmarks-pattern.md +++ b/ARIA/apg/patterns/landmarks/landmarks-pattern.md @@ -113,4 +113,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/link/examples/link.md b/ARIA/apg/patterns/link/examples/link.md index d00416bd8..ec5d5f150 100644 --- a/ARIA/apg/patterns/link/examples/link.md +++ b/ARIA/apg/patterns/link/examples/link.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/link/examples/link/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -229,7 +229,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); link.css
  • - Javascript: + JavaScript: link.js
  • diff --git a/ARIA/apg/patterns/link/link-pattern.md b/ARIA/apg/patterns/link/link-pattern.md index 0675dd4ff..6f0e49fb5 100644 --- a/ARIA/apg/patterns/link/link-pattern.md +++ b/ARIA/apg/patterns/link/link-pattern.md @@ -98,4 +98,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/listbox/examples/listbox-collapsible.md b/ARIA/apg/patterns/listbox/examples/listbox-collapsible.md index b6431c98d..6819c68b4 100644 --- a/ARIA/apg/patterns/listbox/examples/listbox-collapsible.md +++ b/ARIA/apg/patterns/listbox/examples/listbox-collapsible.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/listbox/examples/listbox-collapsible/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -376,7 +376,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); listbox.css
  • - Javascript: + JavaScript: listbox.js, listbox-collapsible.js
  • diff --git a/ARIA/apg/patterns/listbox/examples/listbox-grouped.md b/ARIA/apg/patterns/listbox/examples/listbox-grouped.md index 8c17ba178..7d1e66b1d 100644 --- a/ARIA/apg/patterns/listbox/examples/listbox-grouped.md +++ b/ARIA/apg/patterns/listbox/examples/listbox-grouped.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/listbox/examples/listbox-grouped/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -349,7 +349,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); listbox.css
  • - Javascript: + JavaScript: listbox.js, listbox-scrollable.js
  • diff --git a/ARIA/apg/patterns/listbox/examples/listbox-rearrangeable.md b/ARIA/apg/patterns/listbox/examples/listbox-rearrangeable.md index 581abe1a9..0f9ce928b 100644 --- a/ARIA/apg/patterns/listbox/examples/listbox-rearrangeable.md +++ b/ARIA/apg/patterns/listbox/examples/listbox-rearrangeable.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/listbox/examples/listbox-rearrangeable/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -582,7 +582,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); listbox.css
  • - Javascript: + JavaScript: listbox.js, toolbar.js, listbox-rearrangeable.js
  • diff --git a/ARIA/apg/patterns/listbox/examples/listbox-scrollable.md b/ARIA/apg/patterns/listbox/examples/listbox-scrollable.md index 709192a54..6ddf6264b 100644 --- a/ARIA/apg/patterns/listbox/examples/listbox-scrollable.md +++ b/ARIA/apg/patterns/listbox/examples/listbox-scrollable.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/listbox/examples/listbox-scrollable/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -389,7 +389,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); listbox.css
  • - Javascript: + JavaScript: listbox.js, listbox-scrollable.js
  • diff --git a/ARIA/apg/patterns/listbox/listbox-pattern.md b/ARIA/apg/patterns/listbox/listbox-pattern.md index f2f2383ef..3e3c8048b 100644 --- a/ARIA/apg/patterns/listbox/listbox-pattern.md +++ b/ARIA/apg/patterns/listbox/listbox-pattern.md @@ -316,4 +316,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/menu-button/examples/menu-button-actions-active-descendant.md b/ARIA/apg/patterns/menu-button/examples/menu-button-actions-active-descendant.md index bf97f5570..ec37d7c82 100644 --- a/ARIA/apg/patterns/menu-button/examples/menu-button-actions-active-descendant.md +++ b/ARIA/apg/patterns/menu-button/examples/menu-button-actions-active-descendant.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/menu-button/examples/menu-button-actions-active-de sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -397,7 +397,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); diff --git a/ARIA/apg/patterns/menu-button/examples/menu-button-actions.md b/ARIA/apg/patterns/menu-button/examples/menu-button-actions.md index ffba7dad9..0bcd05619 100644 --- a/ARIA/apg/patterns/menu-button/examples/menu-button-actions.md +++ b/ARIA/apg/patterns/menu-button/examples/menu-button-actions.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/menu-button/examples/menu-button-actions/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -376,7 +376,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); diff --git a/ARIA/apg/patterns/menu-button/examples/menu-button-links.md b/ARIA/apg/patterns/menu-button/examples/menu-button-links.md index a8a6b9172..904c71ca5 100644 --- a/ARIA/apg/patterns/menu-button/examples/menu-button-links.md +++ b/ARIA/apg/patterns/menu-button/examples/menu-button-links.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/menu-button/examples/menu-button-links/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -411,7 +411,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); diff --git a/ARIA/apg/patterns/menu-button/menu-button-pattern.md b/ARIA/apg/patterns/menu-button/menu-button-pattern.md index 78f1d9b64..1735a7818 100644 --- a/ARIA/apg/patterns/menu-button/menu-button-pattern.md +++ b/ARIA/apg/patterns/menu-button/menu-button-pattern.md @@ -118,4 +118,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/menubar/examples/menubar-editor.md b/ARIA/apg/patterns/menubar/examples/menubar-editor.md index 257238689..4abd9a02a 100644 --- a/ARIA/apg/patterns/menubar/examples/menubar-editor.md +++ b/ARIA/apg/patterns/menubar/examples/menubar-editor.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/menubar/examples/menubar-editor/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -838,8 +838,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); CSS: menubar-editor.css -
  • Javascript: menubar-editor.js
  • -
  • Javascript: style-manager.js
  • +
  • JavaScript: menubar-editor.js
  • +
  • JavaScript: style-manager.js
  • diff --git a/ARIA/apg/patterns/menubar/examples/menubar-navigation.md b/ARIA/apg/patterns/menubar/examples/menubar-navigation.md index 83144cf65..c76fce9c7 100644 --- a/ARIA/apg/patterns/menubar/examples/menubar-navigation.md +++ b/ARIA/apg/patterns/menubar/examples/menubar-navigation.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/menubar/examples/menubar-navigation/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -868,7 +868,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/menubar/menu-and-menubar-pattern.md b/ARIA/apg/patterns/menubar/menu-and-menubar-pattern.md index f4adeaf13..7361f21b3 100644 --- a/ARIA/apg/patterns/menubar/menu-and-menubar-pattern.md +++ b/ARIA/apg/patterns/menubar/menu-and-menubar-pattern.md @@ -292,4 +292,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/meter/examples/meter.md b/ARIA/apg/patterns/meter/examples/meter.md index 20ac95d17..03e1d4710 100644 --- a/ARIA/apg/patterns/meter/examples/meter.md +++ b/ARIA/apg/patterns/meter/examples/meter.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/meter/examples/meter/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -192,7 +192,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); meter.css
  • - Javascript: + JavaScript: meter.js
  • diff --git a/ARIA/apg/patterns/meter/meter-pattern.md b/ARIA/apg/patterns/meter/meter-pattern.md index be6f1e976..234110a08 100644 --- a/ARIA/apg/patterns/meter/meter-pattern.md +++ b/ARIA/apg/patterns/meter/meter-pattern.md @@ -113,4 +113,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/patterns.md b/ARIA/apg/patterns/patterns.md index 904ff9bea..9b2379e91 100644 --- a/ARIA/apg/patterns/patterns.md +++ b/ARIA/apg/patterns/patterns.md @@ -52,17 +52,6 @@ lang: en
    -
    -
    - Illustration of a brown-skinned woman with a slight smile gesturing towards the right with her hand -

    Read This First

    -

    - No ARIA is better than Bad ARIA. Before using any ARIA, read this to understand why. -

    -
    -
    - -

    Filter Patterns

    @@ -486,4 +475,8 @@ lang: en src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/radio/examples/radio-activedescendant.md b/ARIA/apg/patterns/radio/examples/radio-activedescendant.md index 31e0995f3..3a622a41c 100644 --- a/ARIA/apg/patterns/radio/examples/radio-activedescendant.md +++ b/ARIA/apg/patterns/radio/examples/radio-activedescendant.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/radio/examples/radio-activedescendant/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -323,7 +323,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/radio/examples/radio-rating.md b/ARIA/apg/patterns/radio/examples/radio-rating.md index 905088a30..1b39942f6 100644 --- a/ARIA/apg/patterns/radio/examples/radio-rating.md +++ b/ARIA/apg/patterns/radio/examples/radio-rating.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/radio/examples/radio-rating/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -342,7 +342,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/radio/examples/radio.md b/ARIA/apg/patterns/radio/examples/radio.md index 458123116..9008d7e6a 100644 --- a/ARIA/apg/patterns/radio/examples/radio.md +++ b/ARIA/apg/patterns/radio/examples/radio.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/radio/examples/radio/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -313,7 +313,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/radio/radio-group-pattern.md b/ARIA/apg/patterns/radio/radio-group-pattern.md index 5497d2ab5..274f610bf 100644 --- a/ARIA/apg/patterns/radio/radio-group-pattern.md +++ b/ARIA/apg/patterns/radio/radio-group-pattern.md @@ -181,4 +181,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/slider-multithumb/examples/slider-multithumb.md b/ARIA/apg/patterns/slider-multithumb/examples/slider-multithumb.md index d564a85a3..9e6bce66f 100644 --- a/ARIA/apg/patterns/slider-multithumb/examples/slider-multithumb.md +++ b/ARIA/apg/patterns/slider-multithumb/examples/slider-multithumb.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/slider-multithumb/examples/slider-multithumb/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -322,7 +322,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/slider-multithumb/slider-multithumb-pattern.md b/ARIA/apg/patterns/slider-multithumb/slider-multithumb-pattern.md index 9fb911f21..ab809fd2d 100644 --- a/ARIA/apg/patterns/slider-multithumb/slider-multithumb-pattern.md +++ b/ARIA/apg/patterns/slider-multithumb/slider-multithumb-pattern.md @@ -129,4 +129,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/slider/examples/slider-color-viewer.md b/ARIA/apg/patterns/slider/examples/slider-color-viewer.md index fe315ee97..d86c52679 100644 --- a/ARIA/apg/patterns/slider/examples/slider-color-viewer.md +++ b/ARIA/apg/patterns/slider/examples/slider-color-viewer.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/slider/examples/slider-color-viewer/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -370,7 +370,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/slider/examples/slider-rating.md b/ARIA/apg/patterns/slider/examples/slider-rating.md index 69d77eec1..f95fc7f27 100644 --- a/ARIA/apg/patterns/slider/examples/slider-rating.md +++ b/ARIA/apg/patterns/slider/examples/slider-rating.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/slider/examples/slider-rating/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -373,7 +373,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/slider/examples/slider-seek.md b/ARIA/apg/patterns/slider/examples/slider-seek.md index 27278baae..e8b18605e 100644 --- a/ARIA/apg/patterns/slider/examples/slider-seek.md +++ b/ARIA/apg/patterns/slider/examples/slider-seek.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/slider/examples/slider-seek/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -365,7 +365,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/slider/examples/slider-temperature.md b/ARIA/apg/patterns/slider/examples/slider-temperature.md index 54b72a035..72de7c56a 100644 --- a/ARIA/apg/patterns/slider/examples/slider-temperature.md +++ b/ARIA/apg/patterns/slider/examples/slider-temperature.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/slider/examples/slider-temperature/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -346,7 +346,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/slider/slider-pattern.md b/ARIA/apg/patterns/slider/slider-pattern.md index ed44f2183..6ba5df4d7 100644 --- a/ARIA/apg/patterns/slider/slider-pattern.md +++ b/ARIA/apg/patterns/slider/slider-pattern.md @@ -133,4 +133,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons.md b/ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons.md index 6cba5e569..f0c28b2b5 100644 --- a/ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons.md +++ b/ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons.md @@ -1,6 +1,6 @@ --- # This file was generated by scripts/pre-build/library/formatForJekyll.js -title: "Date Picker Spin Button Example" +title: "(Deprecated) Date Picker Spin Button Example" ref: /ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons/ github: @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -21,7 +21,7 @@ lang: en --- -Date Picker Spin Button Example +(Deprecated) Date Picker Spin Button Example @@ -99,6 +99,13 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    About This Example

    +
    +

    Deprecation Warning

    +

    + This pattern has been deprecated, and will be removed in a future version of the ARIA Authoring Practices. + The Quantity Spin Button should be used as an alternative to this pattern. +

    +

    The following example uses the Spin Button Pattern to implement a date picker. @@ -382,7 +389,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); datepicker-spinbuttons.css

  • - Javascript: + JavaScript:
    • datepicker-spinbuttons.js
    • spinbutton-date.js
    • diff --git a/ARIA/apg/patterns/spinbutton/examples/quantity-spinbutton.md b/ARIA/apg/patterns/spinbutton/examples/quantity-spinbutton.md new file mode 100644 index 000000000..23d4c539d --- /dev/null +++ b/ARIA/apg/patterns/spinbutton/examples/quantity-spinbutton.md @@ -0,0 +1,518 @@ +--- +# This file was generated by scripts/pre-build/library/formatForJekyll.js +title: "Quantity Spin Button Example" +ref: /ARIA/apg/patterns/spinbutton/examples/quantity-spinbutton/ + +github: + repository: w3c/aria-practices + branch: main + path: content/patterns/spinbutton/examples/quantity-spinbutton.html +feedbackmail: public-aria-practices@w3.org +permalink: /ARIA/apg/patterns/spinbutton/examples/quantity-spinbutton/ + +sidebar: true + +footer: " " + +# Context here: https://github.com/w3c/wai-aria-practices/issues/31 +type_of_guidance: APG + +lang: en +--- + + +Quantity Spin Button Example + + + + + + + + + + + + + + + + + + +
      + +

      Read This First

      +
      + + The code in this example is not intended for production environments. + Before using it for any purpose, read this to understand why. + +

      This is an illustrative example of one way of using ARIA that conforms with the ARIA specification.

      + +
      + + +
      + + +
      +

      About This Example

      + +

      + The following example uses the Spin Button Pattern to implement three quantity inputs. +

      +

      Similar examples include:

      +
        +
      • Toolbar Example: A toolbar that contains a spin button for setting font size.
      • +
      +
      + +
      +
      +

      Example

      +
      + +
      +
      +
      + Guests +
      +
      + +
      + + + +
      + Must be between 1 and 8 + 1 to 8 + +
      +
      + +
      + + + +
      + Must be between 0 and 8 + 0 to 8 + +
      +
      + +
      + + + +
      + Must be between 0 and 12 + 0 to 12 + +
      +
      +
      +
      +
      + +
      + +
      +

      Accessibility Features

      +
        +
      • + The element with role spinbutton allows text input, for + users who prefer to enter a value directly. +
      • +
      • + The spin button input and its adjacent buttons are visually + presented as a single form field containing an editable value, an + increment button, and a + decrement button. +
      • +
      • + When either the spin button input or its adjacent buttons have + received focus, a single visual focus indicator encompasses all + three, reinforcing the relationship between them. +
      • +
      • + For users who have not set a preference for reduced motion, the + focus indicator appears with subtle animation to draw attention. +
      • +
      • + The increment and decrement buttons: +
          +
        • + Are generously sized for ease of use. +
        • +
        • + Are adjacent to the spin button input so they can be accessed by + users of touch-based and voice-based assistive technologies. +
        • +
        • + Are labeled with the title attribute, providing a + human-friendly representation of the plus and minus characters + for users of touch-based and voice-based assistive technologies. The + title attribute also presents a tooltip on hover, + clarifying the meaning of each button’s icon. +
        • +
        • + Use an invisible live region to announce the updated value + when pressed. The live region empties its contents after 3 + seconds to avoid leaving stale content in the document. +
        • +
        • + Are excluded from the page Tab sequence with + tabindex="-1" because they are redundant with the + arrow key support provided to keyboard users. +
        • +
        • + Can be activated with voice control by speaking a command such + as Click add adult. +
        • +
        +
      • +
      • + When forced colors are enabled, system + color keywords are used to ensure visibility and sufficient + contrast for the spin button’s content and interactive states. +
      • +
      • + Each spin button’s minimum and maximum values are programmatically + defined with aria-valuemin and + aria-valuemax, enabling assistive technologies to + convey that information to users in a predictable manner. +
      • +
      • + The minimum and maximum values are also visually expressed with + adjacent help text, but is purposefully not associated using + aria-describedby since the same information is already + programmatically defined. +
      • +
      • + When a user inputs an invalid value: +
          +
        • + The spin button is visually styled to indicate an error state. +
        • +
        • + aria-invalid="true" is added to the input to inform + assistive technologies of the invalid state. +
        • +
        • + An error message is displayed and associated with + the input using aria-errormessage. +
        • +
        +
      • +
      +
      + +
      +

      Keyboard Support

      +

      The spin buttons provide the following keyboard support described in the Spin Button Pattern.

      +
  • aria-errormessageQuantity Spin Button +
    aria-invalidQuantity Spin Button +
    aria-multiselectable
    Total Examples6263
    High Contrast Documentation
    Uses forced-colors media query34
    Uses currentColor value
    Use Class3738
    Use PrototypeUses event.which High Contrast Documentation Example Code IDRoles in Javascript and HTMLRoles in JavaScript and HTML Roles in Documentationaria-* Attributes in Javascript and HTMLaria-* Attributes in JavaScript and HTML aria-* Attributes in Documentation Differences between the documentation and the source code.
    Date Picker Spin Button(Deprecated) Date Picker Spin Button prototype Yes 7
    Quantity Spin Buttonclassexample1188
    Switch Using HTML Button classYes
    Date Picker Spin Button(Deprecated) Date Picker Spin Button Yes Yes
    Quantity Spin ButtonYes
    Switch Using HTML Button Yes spinbutton
    aria-errormessageQuantity Spin Button
    aria-expanded @@ -684,7 +691,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Switch Using HTML Button (HC)
  • Switch Using HTML Checkbox Input (HC)
  • Switch (HC)
  • @@ -693,6 +701,10 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
    aria-invalidQuantity Spin Button
    aria-label @@ -710,7 +722,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Navigation Menubar (HC)
  • Rating Radio Group (HC)
  • Horizontal Multi-Thumb Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Table
  • Toolbar
  • Treegrid Email Inbox
  • @@ -749,7 +761,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • Switch Using HTML Button (HC)
  • Tabs with Automatic Activation (HC)
  • Tabs with Manual Activation (HC)
  • @@ -908,7 +920,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
  • Rating Slider (HC)
  • Media Seek Slider (HC)
  • Vertical Temperature Slider (HC)
  • -
  • Date Picker Spin Button
  • +
  • (Deprecated) Date Picker Spin Button
  • +
  • Quantity Spin Button
  • Toolbar
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    KeyFunction
    Down ArrowDecreases value by 1.
    Up ArrowIncreases value by 1.
    HomeDecreases to minimum value.
    EndIncreases to maximum value.
    Standard single line text editing keys +
      +
    • Keys used for cursor movement and text manipulation, such as Delete and Shift + Right Arrow.
    • +
    • An HTML input with type="text" is used for the spin button so the browser will provide platform-specific editing keys.
    • +
    +
    +
    + +
    +

    Role, Property, State, and Tabindex Attributes

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RoleAttributeElementUsage
    spinbuttoninput[type="text"]Identifies the input[type="text"] element as a spin button.
    aria-valuenow="NUMBER"input[type="text"] +
      +
    • Indicates the current numeric value of the spin button.
    • +
    • Updated by JavaScript as users change the value of the spin button.
    • +
    +
    aria-valuemin="NUMBER"input[type="text"]Indicates the minimum allowed value for the spin button.
    aria-valuemax="NUMBER"input[type="text"]Indicates the maximum allowed value for the spin button.
    aria-invalid="true"input[type="text"]Indicates that the current value is invalid.
    aria-errormessage="ID_REF"input[type="text"]Identifies the element that provides an error message for the spin button.
    title="NAME_STRING"buttonDefines the accessible name for each increment and decrement button (Remove adult, Add adult, Remove kid, Add kid, Remove animal, and Add animal).
    + aria-controls="ID_REF" + buttonIdentifies the element whose value will be modified when the button is activated.
    tabindex="-1"buttonRemoves the increment and decrement buttons from the page Tab sequence while keeping them focusable so they can be accessed with touch-based and voice-based assistive technologies.
    aria-disabled="true"buttonSet when the minimum or maximum value has been reached to inform assistive technologies that the button has been disabled.
    aria-hidden="true"spanFor assistive technology users, hides the visible minus and plus characters in the increment and decrement buttons since they are symbolic of the superior button labels provided by the title attribute.
    output +
      +
    • An element with an implicit role of status and an implicit aria-live value of polite.
    • +
    • Triggers a screen reader announcement of the output element’s updated content at the next graceful opportunity.
    • +
    • When either the increment or decrement button is pressed, the current value of the spin button is injected into the output element.
    • +
    • Its contents are emptied 2000 milliseconds after injection.
    • +
    +
    +
    + +
    +

    JavaScript and CSS Source Code

    + +
    + +
    +

    HTML Source Code

    +

    To copy the following HTML code, please open it in CodePen.

    + +
    + + +
    +
    + + + + diff --git a/ARIA/apg/patterns/spinbutton/spinbutton-pattern.md b/ARIA/apg/patterns/spinbutton/spinbutton-pattern.md index dcbceecf6..dc1e42bb4 100644 --- a/ARIA/apg/patterns/spinbutton/spinbutton-pattern.md +++ b/ARIA/apg/patterns/spinbutton/spinbutton-pattern.md @@ -79,7 +79,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    Example

    -

    Date Picker Spin Button Example: Illustrates a date picker made from three spin buttons for day, month, and year.

    +

    Quantity Spin Button Example: A set of three spin buttons to collect the quantities of adults, children, and animals for a hotel reservation.

    @@ -150,4 +150,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/switch/examples/switch-button.md b/ARIA/apg/patterns/switch/examples/switch-button.md index 526b7ff62..25c6b203e 100644 --- a/ARIA/apg/patterns/switch/examples/switch-button.md +++ b/ARIA/apg/patterns/switch/examples/switch-button.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/switch/examples/switch-button/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -283,7 +283,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); switch-button.css
  • - Javascript: + JavaScript: switch-button.js
  • diff --git a/ARIA/apg/patterns/switch/examples/switch-checkbox.md b/ARIA/apg/patterns/switch/examples/switch-checkbox.md index 5e6d0328b..b1fd4d6a8 100644 --- a/ARIA/apg/patterns/switch/examples/switch-checkbox.md +++ b/ARIA/apg/patterns/switch/examples/switch-checkbox.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/switch/examples/switch-checkbox/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -241,7 +241,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); switch-checkbox.css
  • - Javascript: + JavaScript: switch-checkbox.js
  • diff --git a/ARIA/apg/patterns/switch/examples/switch.md b/ARIA/apg/patterns/switch/examples/switch.md index 9b2608648..c1409bfff 100644 --- a/ARIA/apg/patterns/switch/examples/switch.md +++ b/ARIA/apg/patterns/switch/examples/switch.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/switch/examples/switch/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -249,7 +249,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/switch/switch-pattern.md b/ARIA/apg/patterns/switch/switch-pattern.md index 4d3b67e94..9001a17bc 100644 --- a/ARIA/apg/patterns/switch/switch-pattern.md +++ b/ARIA/apg/patterns/switch/switch-pattern.md @@ -129,4 +129,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/table/examples/sortable-table.md b/ARIA/apg/patterns/table/examples/sortable-table.md index a0b79dbc5..642ca8740 100644 --- a/ARIA/apg/patterns/table/examples/sortable-table.md +++ b/ARIA/apg/patterns/table/examples/sortable-table.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/table/examples/sortable-table/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -264,7 +264,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); sortable-table.css
  • - Javascript: + JavaScript: sortable-table.js
  • diff --git a/ARIA/apg/patterns/table/examples/table.md b/ARIA/apg/patterns/table/examples/table.md index 2484d0ae7..f15dbd7d4 100644 --- a/ARIA/apg/patterns/table/examples/table.md +++ b/ARIA/apg/patterns/table/examples/table.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/table/examples/table/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -230,7 +230,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); CSS: table.css -
  • Javascript: Not applicable.
  • +
  • JavaScript: Not applicable.
  • diff --git a/ARIA/apg/patterns/table/table-pattern.md b/ARIA/apg/patterns/table/table-pattern.md index 8d270a833..2a12bd3cb 100644 --- a/ARIA/apg/patterns/table/table-pattern.md +++ b/ARIA/apg/patterns/table/table-pattern.md @@ -140,4 +140,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/tabs/examples/tabs-actions.md b/ARIA/apg/patterns/tabs/examples/tabs-actions.md index fe7525fb4..bc57dd6f8 100644 --- a/ARIA/apg/patterns/tabs/examples/tabs-actions.md +++ b/ARIA/apg/patterns/tabs/examples/tabs-actions.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/tabs/examples/tabs-actions/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -546,8 +546,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/tabs/examples/tabs-automatic.md b/ARIA/apg/patterns/tabs/examples/tabs-automatic.md index 1f4ae7c4d..40ce2f0ee 100644 --- a/ARIA/apg/patterns/tabs/examples/tabs-automatic.md +++ b/ARIA/apg/patterns/tabs/examples/tabs-automatic.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/tabs/examples/tabs-automatic/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -406,7 +406,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/tabs/examples/tabs-manual.md b/ARIA/apg/patterns/tabs/examples/tabs-manual.md index 810d38ea7..c0d706d38 100644 --- a/ARIA/apg/patterns/tabs/examples/tabs-manual.md +++ b/ARIA/apg/patterns/tabs/examples/tabs-manual.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/tabs/examples/tabs-manual/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -400,7 +400,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    JavaScript and CSS Source Code

    diff --git a/ARIA/apg/patterns/tabs/tabs-pattern.md b/ARIA/apg/patterns/tabs/tabs-pattern.md index 962d38f25..f37d17e38 100644 --- a/ARIA/apg/patterns/tabs/tabs-pattern.md +++ b/ARIA/apg/patterns/tabs/tabs-pattern.md @@ -187,4 +187,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/toolbar/examples/toolbar.md b/ARIA/apg/patterns/toolbar/examples/toolbar.md index c15e5ea96..1a239ba66 100644 --- a/ARIA/apg/patterns/toolbar/examples/toolbar.md +++ b/ARIA/apg/patterns/toolbar/examples/toolbar.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/toolbar/examples/toolbar/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -1013,12 +1013,12 @@ But, in a larger sense, we can not dedicate, we can not consecrate, we can not h diff --git a/ARIA/apg/patterns/toolbar/toolbar-pattern.md b/ARIA/apg/patterns/toolbar/toolbar-pattern.md index 049ed45d0..4f90b20e9 100644 --- a/ARIA/apg/patterns/toolbar/toolbar-pattern.md +++ b/ARIA/apg/patterns/toolbar/toolbar-pattern.md @@ -168,4 +168,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/tooltip/tooltip-pattern.md b/ARIA/apg/patterns/tooltip/tooltip-pattern.md index 021fd3d39..a2b2bf602 100644 --- a/ARIA/apg/patterns/tooltip/tooltip-pattern.md +++ b/ARIA/apg/patterns/tooltip/tooltip-pattern.md @@ -108,4 +108,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/treegrid/examples/treegrid-1.md b/ARIA/apg/patterns/treegrid/examples/treegrid-1.md index 51d4294f1..1047c634d 100644 --- a/ARIA/apg/patterns/treegrid/examples/treegrid-1.md +++ b/ARIA/apg/patterns/treegrid/examples/treegrid-1.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/treegrid/examples/treegrid-1/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -515,7 +515,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); treegrid-1.css
  • - Javascript: + JavaScript: treegrid-1.js
  • diff --git a/ARIA/apg/patterns/treegrid/treegrid-pattern.md b/ARIA/apg/patterns/treegrid/treegrid-pattern.md index 1387e74fb..0a9127aae 100644 --- a/ARIA/apg/patterns/treegrid/treegrid-pattern.md +++ b/ARIA/apg/patterns/treegrid/treegrid-pattern.md @@ -370,4 +370,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/treeview/examples/treeview-1a.md b/ARIA/apg/patterns/treeview/examples/treeview-1a.md index 62b5fd848..9eb20f2cd 100644 --- a/ARIA/apg/patterns/treeview/examples/treeview-1a.md +++ b/ARIA/apg/patterns/treeview/examples/treeview-1a.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/treeview/examples/treeview-1a/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -471,15 +471,15 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); tree.css
  • - Javascript: + JavaScript: tree.js
  • - Javascript: + JavaScript: treeitem.js
  • - Javascript: + JavaScript: treeitemClick.js
  • diff --git a/ARIA/apg/patterns/treeview/examples/treeview-1b.md b/ARIA/apg/patterns/treeview/examples/treeview-1b.md index 4cbef4517..54b0536b1 100644 --- a/ARIA/apg/patterns/treeview/examples/treeview-1b.md +++ b/ARIA/apg/patterns/treeview/examples/treeview-1b.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/treeview/examples/treeview-1b/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -497,15 +497,15 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); tree.css
  • - Javascript: + JavaScript: tree.js
  • - Javascript: + JavaScript: treeitem.js
  • - Javascript: + JavaScript: treeitemClick.js
  • diff --git a/ARIA/apg/patterns/treeview/examples/treeview-navigation.md b/ARIA/apg/patterns/treeview/examples/treeview-navigation.md index 11376100f..e6aa904f1 100644 --- a/ARIA/apg/patterns/treeview/examples/treeview-navigation.md +++ b/ARIA/apg/patterns/treeview/examples/treeview-navigation.md @@ -12,7 +12,7 @@ permalink: /ARIA/apg/patterns/treeview/examples/treeview-navigation/ sidebar: true -footer: " " +footer: " " # Context here: https://github.com/w3c/wai-aria-practices/issues/31 type_of_guidance: APG @@ -741,7 +741,7 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); treeview-navigation.css
  • - Javascript: + JavaScript: treeview-navigation.js
  • diff --git a/ARIA/apg/patterns/treeview/treeview-pattern.md b/ARIA/apg/patterns/treeview/treeview-pattern.md index 3e72a85a7..af7e383c6 100644 --- a/ARIA/apg/patterns/treeview/treeview-pattern.md +++ b/ARIA/apg/patterns/treeview/treeview-pattern.md @@ -327,4 +327,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/patterns/windowsplitter/windowsplitter-pattern.md b/ARIA/apg/patterns/windowsplitter/windowsplitter-pattern.md index 21a201f23..5f666cf4e 100644 --- a/ARIA/apg/patterns/windowsplitter/windowsplitter-pattern.md +++ b/ARIA/apg/patterns/windowsplitter/windowsplitter-pattern.md @@ -144,4 +144,8 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); src="{{ '/content-assets/wai-aria-practices/shared/js/skipto.js' | relative_url }}" data-skipto="colorTheme:aria; displayOption:popup; containerElement:div" > + diff --git a/ARIA/apg/practices/keyboard-interface/keyboard-interface-practice.md b/ARIA/apg/practices/keyboard-interface/keyboard-interface-practice.md index 9f56f807d..a7cb1b22a 100644 --- a/ARIA/apg/practices/keyboard-interface/keyboard-interface-practice.md +++ b/ARIA/apg/practices/keyboard-interface/keyboard-interface-practice.md @@ -261,10 +261,10 @@ if (enableSidebar) document.body.classList.add('has-sidebar');

    - The HTML tabindex - and SVG2 tabindex + The HTML tabindex + and SVG2 tabindex attributes can be used to add and remove elements from the tab sequence. - The value of tabindex can also influence the order of the tab sequence, although authors are strongly advised not to use tabindex for that purpose. + The value of tabindex can also influence the order of the tab sequence, although authors are strongly advised not to use tabindex for that purpose.

    @@ -279,23 +279,23 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); The most robust method of manipulating the order of the tab sequence while also maintaining alignment with the reading order that is currently available in all browsers is rearranging elements in the DOM.

    -

    The values of the tabindex attribute have the following effects.

    +

    The values of the tabindex attribute have the following effects.

    -
    tabindex is not present or does not have a valid value
    +
    tabindex is not present or does not have a valid value
    The element has its default focus behavior. In HTML, only form controls and anchors with an HREF attribute are included in the tab sequence.
    -
    tabindex="0"
    +
    tabindex="0"
    The element is included in the tab sequence based on its position in the DOM.
    -
    tabindex="-1"
    +
    tabindex="-1"
    The element is not included in the tab sequence but is focusable with element.focus().
    -
    tabindex="X" where X is an integer in the range 1 <= X <= 32767
    +
    tabindex="X" where X is an integer in the range 1 <= X <= 32767
    Authors are strongly advised NOT to use these values. - The element is placed in the tab sequence based on the value of tabindex. - Elements with a tabindex value of 0 and elements that are focusable by default will be in the sequence after elements with a tabindex value of 1 or greater. + The element is placed in the tab sequence based on the value of tabindex. + Elements with a tabindex value of 0 and elements that are focusable by default will be in the sequence after elements with a tabindex value of 1 or greater.
    @@ -334,14 +334,14 @@ if (enableSidebar) document.body.classList.add('has-sidebar'); -

    The following sections explain two strategies for managing focus inside composite elements: creating a roving tabindex and using the aria-activedescendant property.

    +

    The following sections explain two strategies for managing focus inside composite elements: creating a roving tabindex and using the aria-activedescendant property.

    -

    Managing Focus Within Components Using a Roving tabindex

    +

    Managing Focus Within Components Using a Roving tabindex

    - When using roving tabindex to manage focus in a composite UI component, the element that is to be included in the tab sequence has tabindex of "0" and all other focusable elements contained in the composite have tabindex of "-1". - The algorithm for the roving tabindex strategy is as follows. + When using roving tabindex to manage focus in a composite UI component, the element that is to be included in the tab sequence has tabindex="0" and all other focusable elements contained in the composite have tabindex="-1". + The algorithm for the roving tabindex strategy is as follows.

    -

    One benefit of using roving tabindex rather than aria-activedescendant to manage focus is that the user agent will scroll the newly focused element into view.

    +

    One benefit of using roving tabindex rather than aria-activedescendant to manage focus is that the user agent will scroll the newly focused element into view.

    -

    Managing Focus in Composites Using aria-activedescendant

    +

    Managing Focus in Composites Using aria-activedescendant

    - If a component container has an ARIA role that supports the aria-activedescendant property, it is not necessary to manipulate the tabindex attribute and move DOM focus among focusable elements within the container. + If a component container has an ARIA role that supports the aria-activedescendant property, it is not necessary to manipulate the tabindex attribute and move DOM focus among focusable elements within the container. Instead, only the container element needs to be included in the tab sequence. - When the container has DOM focus, the value of aria-activedescendant on the container tells assistive technologies which element is active within the widget. - Assistive technologies will consider the element referred to as active to be the focused element even though DOM focus is on the element that has the aria-activedescendant property. - And, when the value of aria-activedescendant is changed, assistive technologies will receive focus change events equivalent to those received when DOM focus actually moves. + When the container has DOM focus, the value of aria-activedescendant on the container tells assistive technologies which element is active within the widget. + Assistive technologies will consider the element referred to as active to be the focused element even though DOM focus is on the element that has the aria-activedescendant property. + And, when the value of aria-activedescendant is changed, assistive technologies will receive focus change events equivalent to those received when DOM focus actually moves.

    -

    The steps for using the aria-activedescendant method of managing focus are as follows.

    +

    The steps for using the aria-activedescendant method of managing focus are as follows.

    - The specification for aria-activedescendant places important restrictions on the DOM relationship between the focused element that has the aria-activedescendant attribute and the element referenced as active by the value of the attribute. + The specification for aria-activedescendant places important restrictions on the DOM relationship between the focused element that has the aria-activedescendant attribute and the element referenced as active by the value of the attribute. One of the following three conditions must be met.

    1. The element referenced as active is a DOM descendant of the focused referencing element.
    2. The focused referencing element has a value specified for the aria-owns property that includes the ID of the element referenced as active.
    3. - The focused referencing element has role of combobox, textbox, or searchbox and has aria-controls property referring to an element with a role that supports aria-activedescendant and either: + The focused referencing element has role of combobox, textbox, or searchbox and has aria-controls property referring to an element with a role that supports aria-activedescendant and either:
      1. The element referenced as active is a descendant of the controlled element.
      2. The controlled element has a value specified for the aria-owns property that includes the ID of the element referenced as active.
      3. @@ -419,6 +419,16 @@ if (enableSidebar) document.body.classList.add('has-sidebar');
    + +
    +

    Note

    +

    This guidance focuses specifically on keyboard interaction. However, authors also need to consider pointer interactions, such as mouse clicks + and touchscreen taps. When a component is clicked/tapped, + authors should take the same steps to set the correct tabindex or aria-activedescendant for the element, + in the same way that they would for keyboard navigation. Otherwise, this could lead to a confusing experience for users that switch between pointer + and keyboard navigation, as it will lead to a mismatch.

    +
    +
    diff --git a/ARIA/apg/practices/practices.md b/ARIA/apg/practices/practices.md index bcdb0a534..9a2fbf061 100644 --- a/ARIA/apg/practices/practices.md +++ b/ARIA/apg/practices/practices.md @@ -51,17 +51,6 @@ lang: en
    -
    -
    - Illustration of a brown-skinned woman with a slight smile gesturing towards the right with her hand -

    Read This First

    -

    - No ARIA is better than Bad ARIA. Before using any ARIA, read this to understand why. -

    -
    -
    - -