diff --git a/ppr-ui/package-lock.json b/ppr-ui/package-lock.json index 83b8e1f57..bc48d0dae 100644 --- a/ppr-ui/package-lock.json +++ b/ppr-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "ppr-ui", - "version": "3.2.31", + "version": "3.2.32", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ppr-ui", - "version": "3.2.31", + "version": "3.2.32", "dependencies": { "@bcrs-shared-components/input-field-date-picker": "^1.0.0", "@lemoncode/fonk": "^1.5.1", diff --git a/ppr-ui/package.json b/ppr-ui/package.json index 4570e7885..a4270ac90 100644 --- a/ppr-ui/package.json +++ b/ppr-ui/package.json @@ -1,6 +1,6 @@ { "name": "ppr-ui", - "version": "3.2.31", + "version": "3.2.32", "private": true, "appName": "Assets UI", "sbcName": "SBC Common Components", diff --git a/ppr-ui/src/assets/styles/accessibility.scss b/ppr-ui/src/assets/styles/accessibility.scss new file mode 100644 index 000000000..93659a7e7 --- /dev/null +++ b/ppr-ui/src/assets/styles/accessibility.scss @@ -0,0 +1,65 @@ +// Mixin for focus-visible styles with default values +@mixin focus-visible-style($outline-offset: 2px, $border-radius: null) { + outline: 2px solid $focus-outline; + box-shadow: 0 0 0 2px #fff; + outline-offset: $outline-offset; + transition: none; + + // Only apply border-radius if a value is provided + @if $border-radius != null { + border-radius: $border-radius; + } +} + +// General styles for elements after focus +.v-btn:after, +.v-list-item:after, +.v-selection-control--focus-visible .v-selection-control__input:before { + content: none; +} + +// Prevent color changes in buttons when focus visible +.v-btn:focus-visible .v-btn__overlay { + opacity: 0; +} + +a { + padding: 0 4px; + + &:focus-visible { + @include focus-visible-style(2px, 4px) + } +} + +// Focus visible styles for radio buttons, buttons, and tabs +.v-btn:focus-visible, +.tab-focused .v-field { + @include focus-visible-style(2px); + z-index: 1; +} + +.v-radio.v-selection-control--focus-visible { + @include focus-visible-style(2px, 4px); +} + +// Checkbox button focus visible styling +.v-checkbox-btn.v-selection-control--focus-visible .v-selection-control__wrapper { + @include focus-visible-style(-8px, 10px); +} + +// Dropdown items focus visible styling +.v-list-item:focus-visible { + @include focus-visible-style(-2px, 4px); +} + +// Help icons focus visible styling +.v-icon:focus-visible { + outline: 2px solid $focus-outline; + box-shadow: 0px 0px 0px 2px #fff; + border-radius: 50%; +} + +.v-slide-group__container { + contain: unset; + overflow: unset; +} \ No newline at end of file diff --git a/ppr-ui/src/assets/styles/base.scss b/ppr-ui/src/assets/styles/base.scss index a9c80ce6f..6a5e76be5 100644 --- a/ppr-ui/src/assets/styles/base.scss +++ b/ppr-ui/src/assets/styles/base.scss @@ -1,4 +1,5 @@ @import 'theme.scss'; +@import 'accessibility.scss'; @font-face { font-family: 'BCSans'; diff --git a/ppr-ui/src/assets/styles/theme.scss b/ppr-ui/src/assets/styles/theme.scss index c494a600e..abf6f1e53 100644 --- a/ppr-ui/src/assets/styles/theme.scss +++ b/ppr-ui/src/assets/styles/theme.scss @@ -80,3 +80,6 @@ $app-orange: #f8661a; // same as the Vuetify theme caution // Sizes for Fonts $px-14: 0.8750rem; $px-16: 1.0000rem; + +// Accessibility +$focus-outline: #003366; diff --git a/ppr-ui/src/components/common/AccountInfo.vue b/ppr-ui/src/components/common/AccountInfo.vue index 801de6169..9322f33bf 100644 --- a/ppr-ui/src/components/common/AccountInfo.vue +++ b/ppr-ui/src/components/common/AccountInfo.vue @@ -14,6 +14,7 @@ class="mt-n1" color="primary" v-bind="props" + tabindex="0" > mdi-information-outline diff --git a/ppr-ui/src/components/common/Breadcrumb.vue b/ppr-ui/src/components/common/Breadcrumb.vue index 64ffbc552..e2bcbac4b 100644 --- a/ppr-ui/src/components/common/Breadcrumb.vue +++ b/ppr-ui/src/components/common/Breadcrumb.vue @@ -34,7 +34,7 @@ mdi-information-outline diff --git a/ppr-ui/src/components/dashboard/DashboardTabs.vue b/ppr-ui/src/components/dashboard/DashboardTabs.vue index 4bc43000f..2526933db 100644 --- a/ppr-ui/src/components/dashboard/DashboardTabs.vue +++ b/ppr-ui/src/components/dashboard/DashboardTabs.vue @@ -5,16 +5,16 @@ @import '@/assets/styles/theme.scss'; + +.ppr-mhr-tabs { + height: 68px; + display: block; + overflow: visible; +} + .tab { min-height: 64px !important; background-color: $BCgovBlue5; @@ -161,20 +169,24 @@ export default defineComponent({ &:hover:not(.v-tab--selected) { background-color: $primary-blue } + + &:nth-child(1) { + margin-right: 3px; // margin to make space for outline a11y + } + &:nth-child(2) { + margin-left: 3px; // margin to make space for outline a11y + } } .v-tab--selected { background-color: white; color: $gray9; pointer-events: none; } -.upper-border { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - min-height: 58px; - max-height: 58px; - margin: 0 2.5px; -} .v-window { min-height: 400px } + +.v-slide-group-item--active { + height: unset !important; +} diff --git a/ppr-ui/src/components/mhrRegistration/MhrStatusCorrection.vue b/ppr-ui/src/components/mhrRegistration/MhrStatusCorrection.vue index 05691ec19..64e4660f5 100644 --- a/ppr-ui/src/components/mhrRegistration/MhrStatusCorrection.vue +++ b/ppr-ui/src/components/mhrRegistration/MhrStatusCorrection.vue @@ -19,6 +19,7 @@ color="primary" v-bind="props" class="mr-1" + tabindex="0" > mdi-information-outline diff --git a/ppr-ui/src/components/mhrRegistration/YourHome/HomeCertification.vue b/ppr-ui/src/components/mhrRegistration/YourHome/HomeCertification.vue index 476647125..c7d2c0234 100644 --- a/ppr-ui/src/components/mhrRegistration/YourHome/HomeCertification.vue +++ b/ppr-ui/src/components/mhrRegistration/YourHome/HomeCertification.vue @@ -172,6 +172,7 @@ color="primary" v-bind="props" data-test-id="no-certification-tooltip" + tabindex="0" > mdi-information-outline diff --git a/ppr-ui/src/components/mhrRegistration/YourHome/ManufacturedYearInput.vue b/ppr-ui/src/components/mhrRegistration/YourHome/ManufacturedYearInput.vue index ceda2c535..a4b0292bb 100644 --- a/ppr-ui/src/components/mhrRegistration/YourHome/ManufacturedYearInput.vue +++ b/ppr-ui/src/components/mhrRegistration/YourHome/ManufacturedYearInput.vue @@ -48,9 +48,10 @@ >