fix(#240): accessibility, color consistency, and reviewedPct denominator

- TranscriptionColumn progress bar: add aria-hidden="true" (the block count
  text above already communicates the value to screen readers)
- TranscriptionColumn weekly pulse: text-ink → text-ink-2 (matches
  SegmentationColumn, same semantic element)
- ReadyColumn reviewedPct: align denominator to annotationCount so the
  displayed percentage matches the SQL threshold used to classify "ready"
- page.svelte.spec.ts: add missing segmentationDocs/transcriptionDocs/
  readyDocs/weeklyStats to emptyData fixture

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-16 12:25:36 +02:00
parent 23410aa4b8
commit d78685c5a4
3 changed files with 8 additions and 4 deletions

View File

@@ -27,8 +27,8 @@ function formatDate(dateStr: string): string {
}
function reviewedPct(doc: TranscriptionQueueItemDTO): number {
if (doc.textedBlockCount === 0) return 0;
return Math.round((doc.reviewedBlockCount / doc.textedBlockCount) * 100);
if (doc.annotationCount === 0) return 0;
return Math.round((doc.reviewedBlockCount / doc.annotationCount) * 100);
}
</script>

View File

@@ -44,7 +44,7 @@ function blockProgress(doc: TranscriptionQueueItemDTO): number {
{m.mission_control_trans_skill_pill()}
</span>
{#if weeklyCount > 0}
<p class="mt-1 text-xs font-semibold text-ink">
<p class="mt-1 text-xs font-semibold text-ink-2">
{m.mission_control_weekly_pulse({ count: weeklyCount })}
</p>
{/if}
@@ -68,7 +68,7 @@ function blockProgress(doc: TranscriptionQueueItemDTO): number {
total: doc.annotationCount
})}
</span>
<div class="h-1 flex-1 overflow-hidden rounded-full bg-ink/20">
<div class="h-1 flex-1 overflow-hidden rounded-full bg-ink/20" aria-hidden="true">
<div
class="h-full rounded-full bg-ink transition-all"
style="width: {blockProgress(doc).toFixed(0)}%"

View File

@@ -44,6 +44,10 @@ const emptyData = {
stats: null,
incompleteCount: 0,
initialValues: { senderName: '', receiverName: '' },
segmentationDocs: [],
transcriptionDocs: [],
readyDocs: [],
weeklyStats: null,
error: null
};