aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/vue/apps/GlobalSearchBar.vue79
-rw-r--r--resources/vue/components/GlobalSearchBarHints.vue17
2 files changed, 62 insertions, 34 deletions
diff --git a/resources/vue/apps/GlobalSearchBar.vue b/resources/vue/apps/GlobalSearchBar.vue
index 78b8802..20535d1 100644
--- a/resources/vue/apps/GlobalSearchBar.vue
+++ b/resources/vue/apps/GlobalSearchBar.vue
@@ -14,36 +14,42 @@
:placeholder="$gettext('Was suchen Sie?')"
role="combobox"
aria-haspopup="listbox"
- aria-expanded="false"
+ :aria-expanded="ariaExpanded"
aria-controls="globalsearch-list"
:aria-label="$gettext('Suche nach Objekten und Personen in Stud.IP')"
@keyup.enter.prevent="doSearch()"
>
- <studip-icon v-if="needle.length > 0"
- shape="decline"
- tabindex="0"
- name="reset-search"
- id="globalsearch-clear"
- class="hidden-small-down"
- @click="resetSearch()"
- :alt="$gettext('Suche zurücksetzen')"
- ></studip-icon>
- <studip-icon shape="search"
- role="info_alt"
- tabindex="0"
- name="start-search"
- id="globalsearch-icon"
- @click.prevent="doSearch()"
- :alt="$gettext('Suche starten')"
- ></studip-icon>
+ <button v-if="needle.length > 0"
+ type="button"
+ id="globalsearch-clear"
+ class="hidden-small-down as-link"
+ :aria-label="$gettext('Suche zurücksetzen')"
+ @click="resetSearch()"
+ >
+ <studip-icon v-if="needle.length > 0"
+ shape="decline"
+ aria-hidden="true"
+ ></studip-icon>
+ </button>
+ <button type="button"
+ id="globalsearch-icon"
+ class="as-link"
+ :aria-label="$gettext('Suche starten')"
+ @click="doSearch()"
+ >
+ <studip-icon shape="search"
+ role="info_alt"
+ ></studip-icon>
+ </button>
+
<div id="globalsearch-list"
role="listbox">
<button class="as-link"
+ type="button"
id="globalsearch-togglehints"
- tabindex="0"
:class="{open: showHints}"
- @click.prevent="showHints = !showHints"
+ @click="showHints = !showHints"
>
{{ showHints ? $gettext('Tipps ausblenden') : $gettext('Tipps einblenden') }}
</button>
@@ -68,18 +74,21 @@
<article v-for="(value, category) in displayedResults"
:key="category"
:id="`globalsearch-${category}`"
+ :aria-expanded="selectedCategory === null || selectedCategory === category"
>
<header class="globalsearch-category" :data-category="category">
- <a href="#" @click.prevent="toggleCategory(category)">
+ <button type="button"
+ class="as-link"
+ @click="toggleCategory(category)"
+ >
{{ value.name }}
- </a>
- <div v-if="value.more && value.fullsearch !== ''"
- class="globalsearch-more-results"
+ </button>
+ <a v-if="value.more && value.fullsearch !== ''"
+ :href="value.fullsearch"
+ class="globalsearch-more-results"
>
- <a :href="value.fullsearch">
- {{ $gettext('alle anzeigen') }}
- </a>
- </div>
+ {{ $gettext('alle anzeigen') }}
+ </a>
</header>
<a v-for="(result, index) in value.content"
:key="`result-${category}-${index}`"
@@ -157,6 +166,13 @@ export default {
}
},
computed: {
+ ariaExpanded() {
+ return this.isVisible && (
+ this.showHints
+ || this.isSearching
+ || this.result !== null
+ );
+ },
displayedResults() {
let results = {};
Object.keys(this.results).forEach((key) => {
@@ -326,3 +342,10 @@ export default {
}
}
</script>
+<style lang="scss" scoped>
+#globalsearch-searchbar {
+ > button.as-link .studip-icon {
+ vertical-align: top;
+ }
+}
+</style>
diff --git a/resources/vue/components/GlobalSearchBarHints.vue b/resources/vue/components/GlobalSearchBarHints.vue
index 5c9c542..fda1571 100644
--- a/resources/vue/components/GlobalSearchBarHints.vue
+++ b/resources/vue/components/GlobalSearchBarHints.vue
@@ -1,14 +1,19 @@
<template>
- <article id="globalsearch-hints" aria-live="polite">
+ <article id="globalsearch-hints">
+ <header>
+ <h2>{{ $gettext('Tipps zur Globalen Suche') }}</h2>
+ </header>
<section>
- <header>{{ $gettext('Hinweis:') }}</header>
+ <header>
+ <h3>{{ $gettext('Hinweis zur Suche') }}</h3>
+ </header>
<p>
{{ $gettext('Die Schnellsuche findet nur Ergebnisse im aktuellen Semester.') }}
</p>
</section>
<section>
<header>
- {{ $gettext('[STRG] + [Leertaste]') }}
+ <h3>{{ $gettext('[STRG] + [Leertaste]') }}</h3>
</header>
<p>
{{ $gettext('Tastenkombination zum Öffnen und Schließen') }}
@@ -16,7 +21,7 @@
</section>
<section>
<header>
- {{ $gettext('Platzhalter') }}
+ <h3>{{ $gettext('Platzhalter') }}</h3>
</header>
<p>
{{ $gettext('"_" ist Platzhalter für ein beliebiges Zeichen.') }}
@@ -30,7 +35,7 @@
</section>
<section>
<header>
- {{ $gettext('Klick auf Überschrift') }}
+ <h3>{{ $gettext('Klick auf Überschrift') }}</h3>
</header>
<p>
{{ $gettext('Erweitert die ausgewählte Suchkategorie, um mehr Suchergebnisse aus dieser Kategorie anzuzeigen. ' +
@@ -39,7 +44,7 @@
</section>
<section>
<header>
- {{ $gettext('Dateisuche') }}
+ <h3>{{ $gettext('Dateisuche') }}</h3>
</header>
<p>
{{ $gettext('Die Dateisuche kann über einen Schrägstrich (/) verfeinert werden. ' +