Skip to content

Commit c66f3b2

Browse files
committed
A11y: Improved tagging of profile menu
- Swapped toggle out to actual button. - Ensured menu items have proper menu item role. - Added extra roles/labels where is makes sense.
1 parent 7bc0d54 commit c66f3b2

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

resources/sass/_header.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ header {
6565
margin: 0 (-(vars.$s));
6666
border-radius: 3px;
6767
gap: vars.$xs;
68+
color: #FFF;
6869
> span {
6970
padding-inline-start: vars.$xs;
7071
display: inline-block;

resources/views/common/dark-mode-toggle.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
{{ method_field('patch') }}
44
<input type="hidden" name="_return" value="{{ url()->current() }}">
55
@if(setting()->getForCurrentUser('dark-mode-enabled'))
6-
<button class="{{ $classes ?? '' }}"><span>@icon('light-mode')</span><span>{{ trans('common.light_mode') }}</span></button>
6+
<button class="{{ $classes ?? '' }}" role="{{ $butonRole ?? '' }}"><span>@icon('light-mode')</span><span>{{ trans('common.light_mode') }}</span></button>
77
@else
8-
<button class="{{ $classes ?? '' }}"><span>@icon('dark-mode')</span><span>{{ trans('common.dark_mode') }}</span></button>
8+
<button class="{{ $classes ?? '' }}" role="{{ $butonRole ?? '' }}"><span>@icon('dark-mode')</span><span>{{ trans('common.dark_mode') }}</span></button>
99
@endif
1010
</form>

resources/views/layouts/parts/header-user-menu.blade.php

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
11
<div class="dropdown-container" component="dropdown" option:dropdown:bubble-escapes="true">
2-
<span class="user-name py-s hide-under-l" refs="dropdown@toggle"
3-
aria-haspopup="true" aria-expanded="false" aria-label="{{ trans('common.profile_menu') }}" tabindex="0">
2+
<button class="user-name py-s hide-under-l" refs="dropdown@toggle"
3+
aria-haspopup="menu"
4+
aria-expanded="false"
5+
aria-label="{{ trans('common.profile_menu') }}">
46
<img class="avatar" src="{{$user->getAvatar(30)}}" alt="{{ $user->name }}">
57
<span class="name">{{ $user->getShortName(9) }}</span> @icon('caret-down')
6-
</span>
7-
<ul refs="dropdown@menu" class="dropdown-menu" role="menu">
8+
</button>
9+
<ul refs="dropdown@menu" class="dropdown-menu" role="menu" aria-label="{{ trans('common.profile_menu') }}">
810
<li>
9-
<a href="{{ url('/favourites') }}" data-shortcut="favourites_view" class="icon-item">
11+
<a href="{{ url('/favourites') }}"
12+
role="menuitem"
13+
data-shortcut="favourites_view"
14+
class="icon-item">
1015
@icon('star')
1116
<div>{{ trans('entities.my_favourites') }}</div>
1217
</a>
1318
</li>
1419
<li>
15-
<a href="{{ $user->getProfileUrl() }}" data-shortcut="profile_view" class="icon-item">
20+
<a href="{{ $user->getProfileUrl() }}"
21+
role="menuitem"
22+
data-shortcut="profile_view"
23+
class="icon-item">
1624
@icon('user')
1725
<div>{{ trans('common.view_profile') }}</div>
1826
</a>
1927
</li>
2028
<li>
21-
<a href="{{ url('/my-account') }}" class="icon-item">
29+
<a href="{{ url('/my-account') }}"
30+
role="menuitem"
31+
class="icon-item">
2232
@icon('user-preferences')
2333
<div>{{ trans('preferences.my_account') }}</div>
2434
</a>
2535
</li>
26-
<li><hr></li>
36+
<li role="presentation"><hr></li>
2737
<li>
28-
@include('common.dark-mode-toggle', ['classes' => 'icon-item'])
38+
@include('common.dark-mode-toggle', ['classes' => 'icon-item', 'buttonRole' => 'menuitem'])
2939
</li>
30-
<li><hr></li>
40+
<li role="presentation"><hr></li>
3141
<li>
3242
@php
3343
$logoutPath = match (config('auth.method')) {
@@ -38,7 +48,7 @@
3848
@endphp
3949
<form action="{{ url($logoutPath) }}" method="post">
4050
{{ csrf_field() }}
41-
<button class="icon-item" data-shortcut="logout">
51+
<button class="icon-item" role="menuitem" data-shortcut="logout">
4252
@icon('logout')
4353
<div>{{ trans('auth.logout') }}</div>
4454
</button>

0 commit comments

Comments
 (0)