a11y: corrections accessibilité WCAG 2.1 (critères 4.1.2, 4.1.3, 1.3.1)
sign.js : - aria-label sur les 4 Fab (Se déconnecter, dashboard, Se connecter, S'enregistrer) - Correction des guillemets typographiques U+2018/U+2019 en ASCII (empêchaient le parsing JSX) - Suppression de useMemo inutilisé - IIFE async ;() → startSubscription() nommée + .catch() explicite (semi-style + no-void) auth-form/index.js : - aria-label des IconButton visibility traduits en français avec état dynamique : 'Afficher/Masquer le mot de passe' et 'Afficher/Masquer la vérification' version-timeline.js : - aria-label='Comparer les versions' sur IconButton Comparer - aria-label dynamique + aria-expanded sur le bouton expand/collapse - Correction object-curly-newline et jsx-closing-bracket-location (pré-existants) version-search.js : - inputProps aria-label='Rechercher dans les versions' (placeholder seul insuffisant) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
'use client'
|
||||
|
||||
import PropTypes from 'prop-types'
|
||||
import {useEffect, useState, useMemo} from 'react'
|
||||
import {useEffect, useState} from 'react'
|
||||
import {signOut} from 'next-auth/react'
|
||||
import {useRouter} from 'next/navigation'
|
||||
import Box from '@mui/material/Box'
|
||||
@@ -70,7 +70,7 @@ export default function Sign({session, navButton}) {
|
||||
console.log('WebSocket authenticated successfully!')
|
||||
|
||||
// Subscribe to version changes
|
||||
;(async () => {
|
||||
const startSubscription = async () => {
|
||||
const {subscription} = await client.subscribe('directus_versions', {
|
||||
event: 'create',
|
||||
query: {
|
||||
@@ -86,7 +86,9 @@ export default function Sign({session, navButton}) {
|
||||
for await (const item of subscription) {
|
||||
console.log('New version created:', item)
|
||||
}
|
||||
})()
|
||||
}
|
||||
|
||||
startSubscription().catch(error => console.error('Subscription error:', error))
|
||||
}
|
||||
})
|
||||
|
||||
@@ -117,12 +119,12 @@ export default function Sign({session, navButton}) {
|
||||
{session ? (
|
||||
<Stack direction='row' spacing={2}>
|
||||
<LightTooltip title='Se déconnecter' placement='right'>
|
||||
<Fab size='large' color='error' onClick={() => setIsOpen(true)}>
|
||||
<Fab size='large' color='error' aria-label='Se déconnecter' onClick={() => setIsOpen(true)}>
|
||||
<LogoutIcon fontSize='large' />
|
||||
</Fab>
|
||||
</LightTooltip>
|
||||
<LightTooltip title={navButton.title} placement='right'>
|
||||
<Fab sx={{mr: 3}} size='large' color={navButton.color} onClick={() => router.push(navButton.path)}>
|
||||
<Fab sx={{mr: 3}} size='large' color={navButton.color} aria-label={navButton.title} onClick={() => router.push(navButton.path)}>
|
||||
{navButton.icon}
|
||||
</Fab>
|
||||
</LightTooltip>
|
||||
@@ -130,12 +132,12 @@ export default function Sign({session, navButton}) {
|
||||
) : (
|
||||
<Stack direction='row' spacing={2}>
|
||||
<LightTooltip title='Se connecter' placement='left'>
|
||||
<Fab size='large' color='success' onClick={() => router.push('/login')}>
|
||||
<Fab size='large' color='success' aria-label='Se connecter' onClick={() => router.push('/login')}>
|
||||
<LoginIcon fontSize='large' />
|
||||
</Fab>
|
||||
</LightTooltip>
|
||||
<LightTooltip title='S’enregistrer' placement='right'>
|
||||
<Fab size='large' color='success' onClick={() => router.push('/register')}>
|
||||
<LightTooltip title="S'enregistrer" placement='right'>
|
||||
<Fab size='large' color='success' aria-label="S'enregistrer" onClick={() => router.push('/register')}>
|
||||
<PersonAddIcon fontSize='large' />
|
||||
</Fab>
|
||||
</LightTooltip>
|
||||
|
||||
Reference in New Issue
Block a user