diff --git a/l10n/cs_CZ.pot b/l10n/cs_CZ.pot index 83a173fde9..08fa6174cc 100644 --- a/l10n/cs_CZ.pot +++ b/l10n/cs_CZ.pot @@ -68,6 +68,9 @@ msgstr "Modrofialová" msgid "Boston Blue" msgstr "Bostonská modrá" +msgid "busy" +msgstr "zaneprádněn(a)" + msgid "Cancel changes" msgstr "Zrušit změny" @@ -101,6 +104,9 @@ msgstr "Zavřít inteligentní výběr" msgid "Collapse menu" msgstr "Sbalit nabídku" +msgid "Color picker" +msgstr "Výběr barev" + msgid "Confirm changes" msgstr "Potvrdit změny" @@ -120,6 +126,9 @@ msgstr "nerušit" msgid "Edit item" msgstr "Upravit položku" +msgid "Emoji picker" +msgstr "Výběr emotikon" + msgid "Enter link" msgstr "Zadat odkaz" diff --git a/l10n/de.pot b/l10n/de.pot index 94c54beac6..b3a42a76dd 100644 --- a/l10n/de.pot +++ b/l10n/de.pot @@ -73,6 +73,9 @@ msgstr "Blau Violett" msgid "Boston Blue" msgstr "Boston-Blau" +msgid "busy" +msgstr "Beschäftigt" + msgid "Cancel changes" msgstr "Änderungen verwerfen" diff --git a/l10n/de_DE.pot b/l10n/de_DE.pot index 1dfbaf4a24..9d0154aea5 100644 --- a/l10n/de_DE.pot +++ b/l10n/de_DE.pot @@ -1,7 +1,7 @@ # # Translators: # John Molakvoæ , 2023 -# Mark Ziegler , 2023 +# Mark Ziegler , 2024 # Mario Siegmann , 2024 # msgid "" @@ -72,6 +72,9 @@ msgstr "Blau Violett" msgid "Boston Blue" msgstr "Boston-Blau" +msgid "busy" +msgstr "Beschäftigt" + msgid "Cancel changes" msgstr "Änderungen verwerfen" @@ -105,6 +108,9 @@ msgstr "Smart Picker schließen" msgid "Collapse menu" msgstr "Menü einklappen" +msgid "Color picker" +msgstr "Farbauswahl" + msgid "Confirm changes" msgstr "Änderungen bestätigen" @@ -124,6 +130,9 @@ msgstr "Bitte nicht stören" msgid "Edit item" msgstr "Element bearbeiten" +msgid "Emoji picker" +msgstr "Emoji-Auswahl" + msgid "Enter link" msgstr "Link eingeben" @@ -168,6 +177,9 @@ msgstr "Passwort verbergen" msgid "invisible" msgstr "Unsichtbar" +msgid "Keyboard navigation help" +msgstr "Tastatur-Navigationshilfe" + msgid "Load more \"{options}\"" msgstr "Weitere \"{options}\" laden" @@ -321,6 +333,12 @@ msgstr "Einstellungen für die Navigation" msgid "Show password" msgstr "Passwort anzeigen" +msgid "Skip to app navigation" +msgstr "Zur App-Navigation springen" + +msgid "Skip to main content" +msgstr "Zum Hauptinhalt springen" + msgid "Smart Picker" msgstr "Smart Picker" diff --git a/l10n/es.pot b/l10n/es.pot index 78308e21c7..4dab0ae4a8 100644 --- a/l10n/es.pot +++ b/l10n/es.pot @@ -73,6 +73,9 @@ msgstr "Violeta Azul" msgid "Boston Blue" msgstr "Azul Boston" +msgid "busy" +msgstr "ocupado" + msgid "Cancel changes" msgstr "Cancelar cambios" @@ -225,6 +228,9 @@ msgstr "Abrir menú" msgid "Open navigation" msgstr "Abrir navegación" +msgid "Options" +msgstr "Opciones" + msgid "Password is secure" msgstr "La contraseña es segura" diff --git a/l10n/messages.pot b/l10n/messages.pot index d7a2d238b8..0458041287 100644 --- a/l10n/messages.pot +++ b/l10n/messages.pot @@ -96,6 +96,9 @@ msgstr "" msgid "Collapse menu" msgstr "" +msgid "Color picker" +msgstr "" + msgid "Confirm changes" msgstr "" @@ -115,6 +118,9 @@ msgstr "" msgid "Edit item" msgstr "" +msgid "Emoji picker" +msgstr "" + msgid "Enter link" msgstr "" @@ -155,6 +161,9 @@ msgstr "" msgid "invisible" msgstr "" +msgid "Keyboard navigation help" +msgstr "" + msgid "Load more \"{options}\"" msgstr "" @@ -307,6 +316,12 @@ msgstr "" msgid "Show password" msgstr "" +msgid "Skip to app navigation" +msgstr "" + +msgid "Skip to main content" +msgstr "" + msgid "Smart Picker" msgstr "" diff --git a/package-lock.json b/package-lock.json index 9eeb0950f5..5aa12b14fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9372,15 +9372,14 @@ "dev": true }, "node_modules/cypress": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.2.tgz", - "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==", + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.3.tgz", + "integrity": "sha512-d/pZvgwjAyZsoyJ3FOsJT5lDsqnxQ/clMqnNc++rkHjbkkiF2h9s0JsZSyyH4QXhVFW3zPFg82jD25roFLOdZA==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^18.17.5", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -9443,15 +9442,6 @@ "cypress": ">=9.7.0" } }, - "node_modules/cypress/node_modules/@types/node": { - "version": "18.19.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", - "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, "node_modules/cypress/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -26613,9 +26603,9 @@ } }, "node_modules/vite": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", - "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", + "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", "dev": true, "dependencies": { "esbuild": "^0.19.3", diff --git a/src/components/NcActions/NcActions.vue b/src/components/NcActions/NcActions.vue index bdd0088b31..8603b0c5ff 100644 --- a/src/components/NcActions/NcActions.vue +++ b/src/components/NcActions/NcActions.vue @@ -1264,9 +1264,15 @@ export default { this.isSemanticMenu = hasMenuItemAction && !hasTextInputAction // We consider the NcActions to be navigation if it consists some link-like action this.isSemanticNavigation = hasLinkAction && !hasMenuItemAction && !hasTextInputAction - // If it is no a manu and not a navigation, it is a popover with items: a form or just a text + // If it is not a menu and not a navigation, it is a popover with items: a form or just a text this.isSemanticPopoverLike = !this.isSemanticMenu && !this.isSemanticNavigation + const popupRole = this.isSemanticMenu + ? 'menu' + : hasTextInputAction + ? 'dialog' + : 'true' + /** * Filter and list actions that are allowed to be displayed inline */ @@ -1348,7 +1354,11 @@ export default { container: this.container, ...this.manualOpen && { triggers: [] }, popoverBaseClass: 'action-item__popper', - setReturnFocus: this.$refs.menuButton?.$el, + popupRole, + // Menu and navigation should not have focus trap + // Tab should close the menu and move focus to the next UI element + setReturnFocus: !this.isSemanticPopoverLike ? null : this.$refs.menuButton?.$el, + focusTrap: this.isSemanticPopoverLike, onShow: this.openMenu, onAfterShow: this.onOpen, onHide: this.closeMenu, @@ -1360,11 +1370,8 @@ export default { disabled: this.disabled, ariaHidden: this.ariaHidden, ref: 'menuButton', - 'aria-haspopup': this.isSemanticMenu ? 'menu' : null, 'aria-label': this.menuName ? null : this.ariaLabel, 'aria-controls': this.opened ? this.randomId : null, - // Do not add aria-expanded="true" when it is closed - 'aria-expanded': this.opened ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, }, { @@ -1383,7 +1390,8 @@ export default { h('ul', { id: this.randomId, tabindex: '-1', - role: this.isSemanticMenu ? 'menu' : null, + role: popupRole !== 'true' ? popupRole : undefined, + // TODO: allow to provide dialog aria-label }, [ actions, ]), diff --git a/src/components/NcAppNavigation/NcAppNavigation.vue b/src/components/NcAppNavigation/NcAppNavigation.vue index 35edba847c..f94ed0fcb0 100644 --- a/src/components/NcAppNavigation/NcAppNavigation.vue +++ b/src/components/NcAppNavigation/NcAppNavigation.vue @@ -78,14 +78,14 @@ emit('toggle-navigation', { + + diff --git a/src/components/NcInputField/NcInputField.vue b/src/components/NcInputField/NcInputField.vue index e3bd4b990d..1ed3f4d3f6 100644 --- a/src/components/NcInputField/NcInputField.vue +++ b/src/components/NcInputField/NcInputField.vue @@ -357,8 +357,8 @@ export default { } &--disabled { - opacity: 0.7; - filter: saturate(0.7); + opacity: 0.4; + filter: saturate(0.4); } &__input { diff --git a/src/components/NcPopover/NcPopover.vue b/src/components/NcPopover/NcPopover.vue index ad530e6c89..b466fd96a8 100644 --- a/src/components/NcPopover/NcPopover.vue +++ b/src/components/NcPopover/NcPopover.vue @@ -36,18 +36,18 @@ open prop on this component; ### Examples -#### With a `