feat(a11y): use <time> tag for dates everywhere
This commit is contained in:
parent
443a9c14b9
commit
0e47cebed5
5 changed files with 27 additions and 15 deletions
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<td v-tooltip="+date === 0 ? '' : formatDate(date)">
|
<td v-tooltip="+date === 0 ? '' : formatDate(date)">
|
||||||
|
<time :datetime="date ? formatISO(date) : null">
|
||||||
{{ +date === 0 ? '-' : formatDateSince(date) }}
|
{{ +date === 0 ? '-' : formatDateSince(date) }}
|
||||||
|
</time>
|
||||||
</td>
|
</td>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<icon :icon="['far', 'calendar-alt']"/>
|
<icon :icon="['far', 'calendar-alt']"/>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<time :datetime="formatISO(task.dueDate)">
|
||||||
{{ formatDateSince(task.dueDate) }}
|
{{ formatDateSince(task.dueDate) }}
|
||||||
</span>
|
</time>
|
||||||
</span>
|
</span>
|
||||||
<h3>{{ task.title }}</h3>
|
<h3>{{ task.title }}</h3>
|
||||||
<progress
|
<progress
|
||||||
|
|
|
@ -39,14 +39,16 @@
|
||||||
:user="a"
|
:user="a"
|
||||||
v-for="(a, i) in task.assignees"
|
v-for="(a, i) in task.assignees"
|
||||||
/>
|
/>
|
||||||
<i
|
<time
|
||||||
|
:datetime="formatISO(task.dueDate)"
|
||||||
:class="{'overdue': task.dueDate <= new Date() && !task.done}"
|
:class="{'overdue': task.dueDate <= new Date() && !task.done}"
|
||||||
|
class="is-italic"
|
||||||
@click.prevent.stop="showDefer = !showDefer"
|
@click.prevent.stop="showDefer = !showDefer"
|
||||||
v-if="+new Date(task.dueDate) > 0"
|
v-if="+new Date(task.dueDate) > 0"
|
||||||
v-tooltip="formatDate(task.dueDate)"
|
v-tooltip="formatDate(task.dueDate)"
|
||||||
>
|
>
|
||||||
- {{ $t('task.detail.due', {at: formatDateSince(task.dueDate)}) }}
|
- {{ $t('task.detail.due', {at: formatDateSince(task.dueDate)}) }}
|
||||||
</i>
|
</time>
|
||||||
<transition name="fade">
|
<transition name="fade">
|
||||||
<defer-task v-if="+new Date(task.dueDate) > 0 && showDefer" v-model="task" ref="deferDueDate"/>
|
<defer-task v-if="+new Date(task.dueDate) > 0 && showDefer" v-model="task" ref="deferDueDate"/>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
|
@ -19,6 +19,7 @@ declare global {
|
||||||
}
|
}
|
||||||
|
|
||||||
import {formatDate, formatDateShort, formatDateLong, formatDateSince} from '@/helpers/time/formatDate'
|
import {formatDate, formatDateShort, formatDateLong, formatDateSince} from '@/helpers/time/formatDate'
|
||||||
|
import {formatISO} from 'date-fns'
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import {VERSION} from './version.json'
|
import {VERSION} from './version.json'
|
||||||
|
|
||||||
|
@ -85,6 +86,7 @@ app.mixin({
|
||||||
format: formatDate,
|
format: formatDate,
|
||||||
formatDate: formatDateLong,
|
formatDate: formatDateLong,
|
||||||
formatDateShort: formatDateShort,
|
formatDateShort: formatDateShort,
|
||||||
|
formatISO,
|
||||||
getNamespaceTitle,
|
getNamespaceTitle,
|
||||||
getListTitle,
|
getListTitle,
|
||||||
setTitle,
|
setTitle,
|
||||||
|
|
|
@ -386,22 +386,28 @@
|
||||||
|
|
||||||
<!-- Created / Updated [by] -->
|
<!-- Created / Updated [by] -->
|
||||||
<p class="created">
|
<p class="created">
|
||||||
|
<time :datetime="formatISO(task.created)" v-tooltip="formatDate(task.created)">
|
||||||
<i18n-t keypath="task.detail.created">
|
<i18n-t keypath="task.detail.created">
|
||||||
<span v-tooltip="formatDate(task.created)">{{ formatDateSince(task.created) }}</span>
|
<span>{{ formatDateSince(task.created) }}</span>
|
||||||
{{ task.createdBy.getDisplayName() }}
|
{{ task.createdBy.getDisplayName() }}
|
||||||
</i18n-t>
|
</i18n-t>
|
||||||
|
</time>
|
||||||
<template v-if="+new Date(task.created) !== +new Date(task.updated)">
|
<template v-if="+new Date(task.created) !== +new Date(task.updated)">
|
||||||
<br/>
|
<br/>
|
||||||
<!-- Computed properties to show the actual date every time it gets updated -->
|
<!-- Computed properties to show the actual date every time it gets updated -->
|
||||||
|
<time :datetime="formatISO(task.updated)" v-tooltip="updatedFormatted">
|
||||||
<i18n-t keypath="task.detail.updated">
|
<i18n-t keypath="task.detail.updated">
|
||||||
<span v-tooltip="updatedFormatted">{{ updatedSince }}</span>
|
<span>{{ updatedSince }}</span>
|
||||||
</i18n-t>
|
</i18n-t>
|
||||||
|
</time>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="task.done">
|
<template v-if="task.done">
|
||||||
<br/>
|
<br/>
|
||||||
|
<time :datetime="formatISO(task.doneAt)" v-tooltip="doneFormatted">
|
||||||
<i18n-t keypath="task.detail.doneAt">
|
<i18n-t keypath="task.detail.doneAt">
|
||||||
<span v-tooltip="doneFormatted">{{ doneSince }}</span>
|
<span>{{ doneSince }}</span>
|
||||||
</i18n-t>
|
</i18n-t>
|
||||||
|
</time>
|
||||||
</template>
|
</template>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue