improved accessibilty: page title

This commit is contained in:
2019-04-03 19:42:20 +02:00
parent 36817261e3
commit 3fa56a54ca
5 changed files with 73 additions and 11 deletions
+27 -2
View File
@@ -3488,6 +3488,11 @@
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true "dev": true
}, },
"deepmerge": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
},
"default-gateway": { "default-gateway": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
@@ -7483,6 +7488,11 @@
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true "dev": true
}, },
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"lodash.sortby": { "lodash.sortby": {
"version": "4.7.0", "version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -7514,6 +7524,11 @@
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true "dev": true
}, },
"lodash.uniqueid": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz",
"integrity": "sha1-MmjyanyI5PSxdY1nknGBTjH6WyY="
},
"loglevel": { "loglevel": {
"version": "1.6.1", "version": "1.6.1",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
@@ -8123,8 +8138,7 @@
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
"dev": true
}, },
"object-copy": { "object-copy": {
"version": "0.1.0", "version": "0.1.0",
@@ -11024,6 +11038,17 @@
"vue-style-loader": "^4.1.0" "vue-style-loader": "^4.1.0"
} }
}, },
"vue-meta": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-1.6.0.tgz",
"integrity": "sha512-LLHejsOYbJiSEDSgZvjHB3fFY7lUxsDFLkuSqf5eBohEvhhddBTOHa3heoFTcI5sxsZSZt26uUzoLVe4CT6Y4A==",
"requires": {
"deepmerge": "^3.2.0",
"lodash.isplainobject": "^4.0.6",
"lodash.uniqueid": "^4.0.1",
"object-assign": "^4.1.1"
}
},
"vue-router": { "vue-router": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",
+1
View File
@@ -20,6 +20,7 @@
"dependencies": { "dependencies": {
"axios": "^0.18.0", "axios": "^0.18.0",
"vue": "^2.6.10", "vue": "^2.6.10",
"vue-meta": "^1.6.0",
"vue-router": "^3.0.2", "vue-router": "^3.0.2",
"vuex": "^3.1.0" "vuex": "^3.1.0"
}, },
+26 -1
View File
@@ -1,7 +1,13 @@
<template> <template>
<div id="root"> <div id="root">
<header role="banner"> <header role="banner">
<h1>Les Guides de Paris</h1> <h1
tabindex="0"
@click="closePost()"
@keydown.enter="closePost()"
>
Les Guides de Paris
</h1>
</header> </header>
<section class="container center-content"> <section class="container center-content">
<RouterView /> <RouterView />
@@ -10,6 +16,25 @@
</div> </div>
</template> </template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
metaInfo: {
// if no subcomponents specify a metaInfo.title, this title will be used
title: 'Home',
// all titles will be injected into this template
titleTemplate: '%s | Guides de Paris'
},
computed: mapState({
opened: state => state.posts.opened
}),
methods: mapActions('posts', [
'closePost'
])
}
</script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.container .container
+16 -8
View File
@@ -5,22 +5,25 @@
<a <a
href="#" href="#"
@click="closePost()" @click="closePost()"
@keydown.enter="openPost(post)" @keydown.enter="closePost()"
> >
close</a> close
</a>
</section> </section>
<ul v-else> <ul v-else>
<li <li
v-for="post in posts" v-for="post in posts"
:key="post.id" :key="post.id"
> >
<h2> <h2>
<a <a
:href="'#post-'+post.id" :href="'#post-'+post.id"
@click="openPost(post)" @click="openPost(post)"
@keydown.enter="openPost(post)" @keydown.enter="openPost(post)"
> >
{{ post.title }}</a></h2> {{ post.title }}
</a>
</h2>
</li> </li>
</ul> </ul>
</template> </template>
@@ -33,12 +36,17 @@ export default {
opened: state => state.posts.opened, opened: state => state.posts.opened,
posts: state => state.posts.all posts: state => state.posts.all
}), }),
created () {
this.$store.dispatch('posts/getAllPosts')
},
methods: mapActions('posts', [ methods: mapActions('posts', [
'openPost', 'openPost',
'closePost' 'closePost'
]), ]),
created () { metaInfo () {
this.$store.dispatch('posts/getAllPosts') return {
title: this.opened !== null ? this.opened.title : 'home'
}
} }
} }
</script> </script>
+3
View File
@@ -1,9 +1,12 @@
import Vue from 'vue' import Vue from 'vue'
import router from './router' import router from './router'
import store from './store' import store from './store'
import Meta from 'vue-meta'
import App from './App' import App from './App'
import 'assets/css/app.styl' import 'assets/css/app.styl'
Vue.use(Meta)
new Vue({ new Vue({
router, router,
store, store,