|
@@ -25,6 +25,8 @@
|
|
|
</p>
|
|
|
</div>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Close"
|
|
|
type="button"
|
|
|
@click="onClickMagnifier"
|
|
|
>
|
|
@@ -41,6 +43,8 @@
|
|
|
>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Reset"
|
|
|
type="button"
|
|
|
@click="onClickReset"
|
|
|
>
|
|
@@ -53,6 +57,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Mute"
|
|
|
type="button"
|
|
|
@click="onClickMute"
|
|
|
>
|
|
@@ -65,6 +71,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Speech Rate"
|
|
|
type="button"
|
|
|
@click="onClickSpeechRate"
|
|
|
>
|
|
@@ -77,6 +85,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Screen Reader"
|
|
|
type="button"
|
|
|
@click="onClickScreenReaderMode"
|
|
|
>
|
|
@@ -89,6 +99,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Coor Modification"
|
|
|
type="button"
|
|
|
@click="onClickColorModification"
|
|
|
>
|
|
@@ -101,6 +113,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Zoom In"
|
|
|
type="button"
|
|
|
@click="onClickZoomIn"
|
|
|
>
|
|
@@ -113,6 +127,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Zoom Out"
|
|
|
type="button"
|
|
|
@click="onClickZoomOut"
|
|
|
>
|
|
@@ -125,6 +141,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Cursor Style"
|
|
|
type="button"
|
|
|
@click="onClickCursorStyle"
|
|
|
>
|
|
@@ -137,6 +155,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Cross Cursor"
|
|
|
type="button"
|
|
|
@click="onClickCrossCursor"
|
|
|
>
|
|
@@ -149,6 +169,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Magnifier"
|
|
|
type="button"
|
|
|
@click="onClickMagnifier"
|
|
|
>
|
|
@@ -161,6 +183,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Help"
|
|
|
type="button"
|
|
|
@click="onClickHelp"
|
|
|
>
|
|
@@ -173,9 +197,12 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<a
|
|
|
+ tabindex="0"
|
|
|
+ aria-label="Button"
|
|
|
+ aria-description="Download Shortcut"
|
|
|
ref="shortcutBtnRef"
|
|
|
:href="shortcutFileText"
|
|
|
- download="首都博物馆.url"
|
|
|
+ download="CapitalMuseum.url"
|
|
|
>
|
|
|
<img
|
|
|
:src="assetUrls.shotcut"
|
|
@@ -186,6 +213,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Screen Reading Accessibility"
|
|
|
type="button"
|
|
|
@click="onClickScreenReaderAreaEntry"
|
|
|
>
|
|
@@ -198,6 +227,8 @@
|
|
|
</li>
|
|
|
<li>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Quit"
|
|
|
type="button"
|
|
|
@click="onClickQuit"
|
|
|
>
|
|
@@ -215,20 +246,24 @@
|
|
|
class="blind-mode-menu"
|
|
|
>
|
|
|
<div class="blind-mode-title">
|
|
|
- <h5>Intelligent blind guide</h5>
|
|
|
+ <h5 tabindex="0">Intelligent blind guide</h5>
|
|
|
<div class="splitter-line" />
|
|
|
- <h5>Regional guidelines</h5>
|
|
|
+ <h5 tabindex="0">Regional guidelines</h5>
|
|
|
</div>
|
|
|
<li
|
|
|
class="text-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Navigation area"
|
|
|
+ @mousedown="onMouseDownNavigationArea"
|
|
|
+ @click="onClickNavigationArea"
|
|
|
type="button"
|
|
|
>
|
|
|
<div class="button-name">
|
|
|
Navigation
|
|
|
<br>
|
|
|
- area (1)
|
|
|
+ area ({{navigationAreaNum}})
|
|
|
</div>
|
|
|
<div class="button-shortcut">
|
|
|
Alt+1
|
|
@@ -239,12 +274,16 @@
|
|
|
class="text-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Window area"
|
|
|
+ @mousedown="onMouseDownWindowArea"
|
|
|
+ @click="onClickWindowArea"
|
|
|
type="button"
|
|
|
>
|
|
|
<div class="button-name">
|
|
|
Window
|
|
|
<br>
|
|
|
- area (3)
|
|
|
+ area ({{viewportAreaNum}})
|
|
|
</div>
|
|
|
<div class="button-shortcut">
|
|
|
Alt+2
|
|
@@ -255,12 +294,16 @@
|
|
|
class="text-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Interaction area"
|
|
|
+ @mousedown="onMouseDownInteractionArea"
|
|
|
+ @click="onClickInteractionArea"
|
|
|
type="button"
|
|
|
>
|
|
|
<div class="button-name">
|
|
|
Interaction
|
|
|
<br>
|
|
|
- area (1)
|
|
|
+ area ({{interactionAreaNum}})
|
|
|
</div>
|
|
|
<div class="button-shortcut">
|
|
|
Alt+3
|
|
@@ -271,6 +314,8 @@
|
|
|
class="image-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Mute"
|
|
|
type="button"
|
|
|
@click="onClickMute"
|
|
|
>
|
|
@@ -285,6 +330,8 @@
|
|
|
class="image-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Help"
|
|
|
type="button"
|
|
|
@click="onClickHelp"
|
|
|
>
|
|
@@ -299,6 +346,8 @@
|
|
|
class="image-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Magnifier"
|
|
|
type="button"
|
|
|
@click="onClickMagnifier"
|
|
|
>
|
|
@@ -313,6 +362,8 @@
|
|
|
class="image-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Elerly services"
|
|
|
type="button"
|
|
|
@click="onClickElderlyServicesAreaEntry"
|
|
|
>
|
|
@@ -327,6 +378,8 @@
|
|
|
class="image-button"
|
|
|
>
|
|
|
<button
|
|
|
+ tabindex="0"
|
|
|
+ aria-description="Quit"
|
|
|
type="button"
|
|
|
@click="onClickQuit"
|
|
|
>
|
|
@@ -414,9 +467,23 @@ export default {
|
|
|
`),
|
|
|
|
|
|
audioPlayer: null,
|
|
|
+
|
|
|
+ navigationAreaNum: null,
|
|
|
+ viewportAreaNum: null,
|
|
|
+ interactionAreaNum: null,
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
+ $route: {
|
|
|
+ handler(v) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.navigationAreaNum = document.querySelectorAll('*[data-aria-navigation-area]').length
|
|
|
+ this.viewportAreaNum = document.querySelectorAll('*[data-aria-viewport-area]').length
|
|
|
+ this.interactionAreaNum = document.querySelectorAll('*[data-aria-interaction-area]').length
|
|
|
+ })
|
|
|
+ },
|
|
|
+ immediate: true,
|
|
|
+ },
|
|
|
ariaSettings: {
|
|
|
handler(v) {
|
|
|
let storedSettings = localStorage.getItem('ariaSettings')
|
|
@@ -564,6 +631,9 @@ export default {
|
|
|
document.removeEventListener('focusin', this.onFocusIn, {
|
|
|
passive: true,
|
|
|
})
|
|
|
+
|
|
|
+ this.$eventBus.$off('request-read')
|
|
|
+
|
|
|
document.removeEventListener('mouseover', this.onMouseOverForContinueRead, {
|
|
|
passive: true,
|
|
|
})
|
|
@@ -674,7 +744,7 @@ export default {
|
|
|
} else if (e.key === "2" && e.altKey && !e.ctrlKey && !e.shiftKey) {
|
|
|
utils.getAndFocusNextNodeWithCustomAttribute('ariaViewportArea')
|
|
|
} else if (e.key === "3" && e.altKey && !e.ctrlKey && !e.shiftKey) {
|
|
|
- utils.getAndFocusNextNodeWithCustomAttribute('ariaInteractiveArea')
|
|
|
+ utils.getAndFocusNextNodeWithCustomAttribute('ariaInteractionArea')
|
|
|
}
|
|
|
},
|
|
|
loadStoredSettings() {
|
|
@@ -845,6 +915,24 @@ export default {
|
|
|
onClickScreenReaderAreaEntry() {
|
|
|
this.ariaSettings.menuMode = 'blind'
|
|
|
},
|
|
|
+ onMouseDownNavigationArea(e) {
|
|
|
+ e.preventDefault()
|
|
|
+ },
|
|
|
+ onClickNavigationArea() {
|
|
|
+ utils.getAndFocusNextNodeWithCustomAttribute('ariaNavigationArea')
|
|
|
+ },
|
|
|
+ onMouseDownWindowArea(e) {
|
|
|
+ e.preventDefault()
|
|
|
+ },
|
|
|
+ onClickWindowArea() {
|
|
|
+ utils.getAndFocusNextNodeWithCustomAttribute('ariaViewportArea')
|
|
|
+ },
|
|
|
+ onMouseDownInteractionArea(e) {
|
|
|
+ e.preventDefault()
|
|
|
+ },
|
|
|
+ onClickInteractionArea() {
|
|
|
+ utils.getAndFocusNextNodeWithCustomAttribute('ariaInteractionArea')
|
|
|
+ },
|
|
|
onClickQuit() {
|
|
|
this.ariaSettings.isCompActive = false
|
|
|
},
|