nodebb-theme-persona 13.3.3 → 13.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/package.json +1 -1
  2. package/templates/account/blocks.tpl +4 -4
  3. package/templates/account/categories.tpl +6 -6
  4. package/templates/account/topics.tpl +3 -3
  5. package/templates/flags/detail.tpl +10 -10
  6. package/templates/flags/list.tpl +3 -3
  7. package/templates/notifications.tpl +4 -4
  8. package/templates/partials/account/menu.tpl +32 -32
  9. package/templates/partials/category/filter-dropdown-content.tpl +3 -3
  10. package/templates/partials/category/selector-dropdown-content.tpl +3 -3
  11. package/templates/partials/category/sort.tpl +7 -7
  12. package/templates/partials/category/tools.tpl +15 -15
  13. package/templates/partials/category/watch.tpl +6 -7
  14. package/templates/partials/flags/filters.tpl +6 -6
  15. package/templates/partials/groups/admin.tpl +8 -8
  16. package/templates/partials/groups/filter-dropdown-content.tpl +3 -3
  17. package/templates/partials/header/chats.tpl +2 -2
  18. package/templates/partials/header/notifications.tpl +2 -2
  19. package/templates/partials/header/search.tpl +3 -3
  20. package/templates/partials/header/user-menu.tpl +17 -17
  21. package/templates/partials/menu.tpl +1 -1
  22. package/templates/partials/paginator.tpl +11 -11
  23. package/templates/partials/search-filters.tpl +14 -14
  24. package/templates/partials/tags/filter-dropdown-content.tpl +3 -3
  25. package/templates/partials/tags/watch.tpl +4 -4
  26. package/templates/partials/topic/navigator.tpl +1 -1
  27. package/templates/partials/topic/post-menu-list.tpl +18 -18
  28. package/templates/partials/topic/post-menu.tpl +1 -1
  29. package/templates/partials/topic/reply-button.tpl +2 -2
  30. package/templates/partials/topic/sort.tpl +5 -5
  31. package/templates/partials/topic/tools.tpl +2 -2
  32. package/templates/partials/topic/topic-menu-list.tpl +58 -16
  33. package/templates/partials/topic/watch.tpl +5 -5
  34. package/templates/partials/topic-filters.tpl +2 -2
  35. package/templates/partials/topic-terms.tpl +2 -2
  36. package/templates/partials/users/filter-dropdown-content.tpl +3 -3
  37. package/templates/register.tpl +5 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-persona",
3
- "version": "13.3.3",
3
+ "version": "13.3.4",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.5.0"
6
6
  },
@@ -3,13 +3,13 @@
3
3
  <div class="row justify-content-end mb-2">
4
4
  <div class="col-3">
5
5
  <div class="dropdown">
6
- <input class="form-control" type="text" id="user-search" placeholder="[[users:enter-username]]" data-bs-toggle="dropdown" autocomplete="off"/>
6
+ <input class="form-control" type="text" id="user-search" placeholder="[[users:enter-username]]" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false"/>
7
7
 
8
- <ul class="dropdown-menu block-edit list-unstyled">
9
- <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
8
+ <ul class="dropdown-menu block-edit list-unstyled" role="menu">
9
+ <li><a href="#" class="dropdown-item" role="menuitem">[[admin/menu:search.start-typing]]</a></li>
10
10
  {{{ each edit }}}
11
11
  <li class="">
12
- <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between">
12
+ <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between" role="menuitem">
13
13
  <div class="text-truncate">
14
14
  <a href="{config.relative_path}/uid/{../uid}">{buildAvatar(edit, "24px", true)} {../username}</a>
15
15
  </div>
@@ -4,15 +4,15 @@
4
4
  <h1 class="fs-2">{title}</h1>
5
5
  <div class="col-lg-12 mb-2">
6
6
  <div class="btn-group bottom-sheet" component="category/watch/all">
7
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
7
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
8
8
  <span>[[user:change-all]]</span>
9
9
  <span class="caret"></span>
10
10
  </button>
11
- <ul class="dropdown-menu">
12
- <li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i class="fa fa-fw fa-bell-o"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
13
- <li><a class="dropdown-item" href="#" component="category/tracking" data-state="tracking"><i class="fa fa-fw fa-inbox"></i> [[category:tracking]]<p class="help-text"><small>[[category:tracking.description]]</small></p></a></li>
14
- <li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
15
- <li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
11
+ <ul class="dropdown-menu" role="menu">
12
+ <li><a class="dropdown-item" href="#" component="category/watching" data-state="watching" role="menuitem"><i class="fa fa-fw fa-bell-o"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
13
+ <li><a class="dropdown-item" href="#" component="category/tracking" data-state="tracking" role="menuitem"><i class="fa fa-fw fa-inbox"></i> [[category:tracking]]<p class="help-text"><small>[[category:tracking.description]]</small></p></a></li>
14
+ <li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching" role="menuitem"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
15
+ <li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring" role="menuitem"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
16
16
  </ul>
17
17
  </div>
18
18
  </div>
@@ -5,10 +5,10 @@
5
5
  <!-- IF showSort -->
6
6
  <div class="btn-toolbar justify-content-end mb-2">
7
7
  <div class="btn-group bottom-sheet" component="thread/sort">
8
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button"><span>[[topic:sort-by]]</span> <span class="caret"></span></button>
9
- <ul class="dropdown-menu dropdown-menu-end">
8
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false"><span>[[topic:sort-by]]</span> <span class="caret"></span></button>
9
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
10
10
  {{{each sortOptions }}}
11
- <li><a class="dropdown-item" href="{config.relative_path}{sortOptions.url}"><i class="fa fa-fw {{{if sortOptions.selected}}}fa-check{{{end}}}"></i>{sortOptions.name}</a></li>
11
+ <li><a class="dropdown-item" href="{config.relative_path}{sortOptions.url}" role="menuitem"><i class="fa fa-fw {{{if sortOptions.selected}}}fa-check{{{end}}}"></i>{sortOptions.name}</a></li>
12
12
  {{{end}}}
13
13
  </ul>
14
14
  </div>
@@ -145,24 +145,24 @@
145
145
  [[flags:flagged-user]]
146
146
  <span class="caret"></span>
147
147
  </button>
148
- <ul class="dropdown-menu">
149
- <li><a class="dropdown-item" href="{config.relative_path}/uid/{target.uid}">[[flags:view-profile]]</a></li>
148
+ <ul class="dropdown-menu" role="menu">
149
+ <li><a class="dropdown-item" href="{config.relative_path}/uid/{target.uid}" role="menuitem">[[flags:view-profile]]</a></li>
150
150
  {{{ if !config.disableChat }}}
151
- <li><a class="dropdown-item" href="#" data-action="chat">[[flags:start-new-chat]]</a></li>
151
+ <li><a class="dropdown-item" href="#" data-action="chat" role="menuitem">[[flags:start-new-chat]]</a></li>
152
152
  {{{ end }}}
153
153
  <li class="dropdown-divider"></li>
154
154
  {{{ if privileges.ban }}}
155
- <li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="ban">[[user:ban-account]]</a></li>
156
- <li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unban">[[user:unban-account]]</a></li>
155
+ <li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="ban" role="menuitem">[[user:ban-account]]</a></li>
156
+ <li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unban" role="menuitem">[[user:unban-account]]</a></li>
157
157
  {{{ end }}}
158
158
  {{{ if privileges.mute}}}
159
- <li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="mute">[[user:mute-account]]</a></li>
160
- <li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unmute">[[user:unmute-account]]</a></li>
159
+ <li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="mute" role="menuitem">[[user:mute-account]]</a></li>
160
+ <li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unmute" role="menuitem">[[user:unmute-account]]</a></li>
161
161
  {{{ end }}}
162
162
  {{{ if privileges.admin:users }}}
163
- <li><a class="dropdown-item" href="#" data-action="delete-account">[[user:delete-account-as-admin]]</a></li>
164
- <li><a class="dropdown-item" href="#" data-action="delete-content">[[user:delete-content]]</a></li>
165
- <li><a class="dropdown-item" href="#" data-action="delete-all">[[user:delete-all]]</a></li>
163
+ <li><a class="dropdown-item" href="#" data-action="delete-account" role="menuitem">[[user:delete-account-as-admin]]</a></li>
164
+ <li><a class="dropdown-item" href="#" data-action="delete-content" role="menuitem">[[user:delete-content]]</a></li>
165
+ <li><a class="dropdown-item" href="#" data-action="delete-all" role="menuitem">[[user:delete-all]]</a></li>
166
166
  {{{ end }}}
167
167
  </ul>
168
168
  </div>
@@ -18,9 +18,9 @@
18
18
  <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false" disabled="disabled">
19
19
  <i class="fa fa-clone"></i> [[flags:bulk-actions]] <span class="caret"></span>
20
20
  </button>
21
- <ul class="dropdown-menu">
22
- <li><a href="#" class="dropdown-item" data-action="bulk-assign">[[flags:assign-to-me]]</a></li>
23
- <li><a href="#" class="dropdown-item" data-action="bulk-mark-resolved">[[flags:bulk-resolve]]</a></li>
21
+ <ul class="dropdown-menu" role="menu">
22
+ <li><a href="#" class="dropdown-item" data-action="bulk-assign" role="menuitem">[[flags:assign-to-me]]</a></li>
23
+ <li><a href="#" class="dropdown-item" data-action="bulk-mark-resolved" role="menuitem">[[flags:bulk-resolve]]</a></li>
24
24
  </ul>
25
25
  </div>
26
26
 
@@ -4,7 +4,7 @@
4
4
  <!-- IMPORT partials/breadcrumbs.tpl -->
5
5
  <div class="btn-toolbar justify-content-end" role="toolbar">
6
6
  <div class="btn-group me-2">
7
- <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
7
+ <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
8
8
  {{{ if selectedFilter }}}{selectedFilter.name}{{{ end}}} <span class="caret"></span>
9
9
  </button>
10
10
  <ul class="dropdown-menu dropdown-menu-end" role="menu">
@@ -13,7 +13,7 @@
13
13
  <li role="separator" class="dropdown-divider"></li>
14
14
  {{{ else }}}
15
15
  <li role="presentation" class="category">
16
- <a class="dropdown-item" role="menu-item" href="{config.relative_path}/notifications?filter={filters.filter}"><i class="fa fa-fw {{{ if filters.selected }}}fa-check{{{ end }}}"></i> {filters.name}</a>
16
+ <a class="dropdown-item" role="menuitem" href="{config.relative_path}/notifications?filter={filters.filter}"><i class="fa fa-fw {{{ if filters.selected }}}fa-check{{{ end }}}"></i> {filters.name}</a>
17
17
  </li>
18
18
  {{{ end }}}
19
19
  {{{ end }}}
@@ -21,12 +21,12 @@
21
21
  </div>
22
22
 
23
23
  <div class="btn-group">
24
- <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="true">
24
+ <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
25
25
  <i class="fa fa-eye"></i>
26
26
  <span class="caret"></span>
27
27
  </button>
28
28
  <ul class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="dropdownMenu1">
29
- <li role="presentation"><a class="dropdown-item" role="menuitem" tabindex="-1" href="#" component="notifications/mark_all">[[notifications:mark-all-read]]</a></li>
29
+ <li role="presentation"><a class="dropdown-item" role="menuitem" href="#" component="notifications/mark_all">[[notifications:mark-all-read]]</a></li>
30
30
  </ul>
31
31
  </div>
32
32
  </div>
@@ -2,37 +2,37 @@
2
2
  <button type="button" class="persona-fab dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
3
  <i class="fa fa-ellipsis-v"></i>
4
4
  </button>
5
- <ul class="dropdown-menu dropdown-menu-end account-sub-links">
5
+ <ul class="dropdown-menu dropdown-menu-end account-sub-links" role="menu">
6
6
  <!-- IF loggedIn -->
7
7
  <!-- IF !isSelf -->
8
8
  <!-- IF !banned -->
9
9
  <!-- IF canChat -->
10
10
  <li class="<!-- IF !hasPrivateChat -->hidden<!-- ENDIF !hasPrivateChat -->">
11
- <a class="dropdown-item" component="account/chat" href="#">[[user:chat-with, {username}]]</a>
11
+ <a class="dropdown-item" component="account/chat" href="#" role="menuitem">[[user:chat-with, {username}]]</a>
12
12
  </li>
13
13
  <li>
14
- <a class="dropdown-item" component="account/new-chat" href="#">[[user:new-chat-with, {username}]]</a>
14
+ <a class="dropdown-item" component="account/new-chat" href="#" role="menuitem">[[user:new-chat-with, {username}]]</a>
15
15
  </li>
16
16
  <!-- ENDIF canChat -->
17
17
  <li>
18
- <a class="dropdown-item" component="account/flag" href="#">[[user:flag-profile]]</a>
18
+ <a class="dropdown-item" component="account/flag" href="#" role="menuitem">[[user:flag-profile]]</a>
19
19
  </li>
20
20
  <li>
21
- <a class="dropdown-item {{{ if ./isBlocked }}}hidden{{{ end }}}" component="account/block" href="#">[[user:block-user]]</a>
21
+ <a class="dropdown-item {{{ if ./isBlocked }}}hidden{{{ end }}}" component="account/block" href="#" role="menuitem">[[user:block-user]]</a>
22
22
  </li>
23
23
  <li>
24
- <a class="dropdown-item {{{ if !./isBlocked }}}hidden{{{ end }}}" component="account/unblock" href="#">[[user:unblock-user]]</a>
24
+ <a class="dropdown-item {{{ if !./isBlocked }}}hidden{{{ end }}}" component="account/unblock" href="#" role="menuitem">[[user:unblock-user]]</a>
25
25
  </li>
26
26
  <li role="separator" class="dropdown-divider"></li>
27
27
  <!-- ENDIF !banned -->
28
28
  <!-- ENDIF !isSelf -->
29
29
  <!-- ENDIF loggedIn -->
30
30
  <li>
31
- <a class="dropdown-item" href="{config.relative_path}/user/{userslug}" class="d-inline-block" id="profile">[[user:profile]]</a>
31
+ <a class="dropdown-item" href="{config.relative_path}/user/{userslug}" class="d-inline-block" id="profile" role="menuitem">[[user:profile]]</a>
32
32
  </li>
33
33
  <!-- IF canEdit -->
34
- <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/edit">[[user:edit]]</a></li>
35
- <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/settings">[[user:settings]]</a></li>
34
+ <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/edit" role="menuitem">[[user:edit]]</a></li>
35
+ <li><a class="dropdown-item" href="{config.relative_path}/user/{userslug}/settings" role="menuitem">[[user:settings]]</a></li>
36
36
  <!-- ENDIF canEdit -->
37
37
 
38
38
  <!-- IF !isSelf -->
@@ -42,60 +42,60 @@
42
42
  {{{ end }}}
43
43
  {{{ if canBan }}}
44
44
  <li class="<!-- IF banned -->hide<!-- ENDIF banned -->">
45
- <a class="dropdown-item" component="account/ban" href="#">[[user:ban-account]]</a>
45
+ <a class="dropdown-item" component="account/ban" href="#" role="menuitem">[[user:ban-account]]</a>
46
46
  </li>
47
47
  <li class="<!-- IF !banned -->hide<!-- ENDIF !banned -->">
48
- <a class="dropdown-item" component="account/unban" href="#">[[user:unban-account]]</a>
48
+ <a class="dropdown-item" component="account/unban" href="#" role="menuitem">[[user:unban-account]]</a>
49
49
  </li>
50
50
  {{{ end }}}
51
51
  {{{ if canMute }}}
52
52
  <li class="<!-- IF muted -->hide<!-- ENDIF muted -->">
53
- <a class="dropdown-item" component="account/mute" href="#">[[user:mute-account]]</a>
53
+ <a class="dropdown-item" component="account/mute" href="#" role="menuitem">[[user:mute-account]]</a>
54
54
  </li>
55
55
  <li class="<!-- IF !muted -->hide<!-- ENDIF !muted -->">
56
- <a class="dropdown-item" component="account/unmute" href="#">[[user:unmute-account]]</a>
56
+ <a class="dropdown-item" component="account/unmute" href="#" role="menuitem">[[user:unmute-account]]</a>
57
57
  </li>
58
58
  {{{ end }}}
59
59
  <!-- IF isAdmin -->
60
60
  <li>
61
- <a component="account/delete-account" href="#" class="dropdown-item">[[user:delete-account-as-admin]]</a>
62
- <a component="account/delete-content" href="#" class="dropdown-item">[[user:delete-content]]</a>
63
- <a component="account/delete-all" href="#" class="dropdown-item">[[user:delete-all]]</a>
61
+ <a component="account/delete-account" href="#" class="dropdown-item" role="menuitem">[[user:delete-account-as-admin]]</a>
62
+ <a component="account/delete-content" href="#" class="dropdown-item" role="menuitem">[[user:delete-content]]</a>
63
+ <a component="account/delete-all" href="#" class="dropdown-item" role="menuitem">[[user:delete-all]]</a>
64
64
  </li>
65
65
  <!-- ENDIF isAdmin -->
66
66
  <!-- ENDIF !isSelf -->
67
67
 
68
68
  <li role="separator" class="dropdown-divider"></li>
69
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/following">[[user:following]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.following}">{formattedNumber(counts.following)}</span></a></li>
70
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/followers">[[user:followers]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.followers}">{formattedNumber(counts.followers)}</span></a></li>
69
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/following" role="menuitem">[[user:following]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.following}">{formattedNumber(counts.following)}</span></a></li>
70
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/followers" role="menuitem">[[user:followers]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.followers}">{formattedNumber(counts.followers)}</span></a></li>
71
71
  <!-- IF canEdit -->
72
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/blocks">[[user:blocks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.blocks}">{formattedNumber(counts.blocks)}</span></a></li>
72
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/blocks" role="menuitem">[[user:blocks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.blocks}">{formattedNumber(counts.blocks)}</span></a></li>
73
73
  <!-- ENDIF canEdit -->
74
74
  <li role="separator" class="dropdown-divider"></li>
75
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/topics">[[global:topics]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.topics}">{formattedNumber(counts.topics)}</span></a></li>
76
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/posts">[[global:posts]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.posts}">{formattedNumber(counts.posts)}</span></a></li>
75
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/topics" role="menuitem">[[global:topics]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.topics}">{formattedNumber(counts.topics)}</span></a></li>
76
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/posts" role="menuitem">[[global:posts]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.posts}">{formattedNumber(counts.posts)}</span></a></li>
77
77
  <!-- IF !reputation:disabled -->
78
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/best">[[global:best]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.best}">{formattedNumber(counts.best)}</span></a></li>
79
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/controversial">[[global:controversial]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.controversial}">{formattedNumber(counts.controversial)}</span></a></li>
78
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/best" role="menuitem">[[global:best]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.best}">{formattedNumber(counts.best)}</span></a></li>
79
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/controversial" role="menuitem">[[global:controversial]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.controversial}">{formattedNumber(counts.controversial)}</span></a></li>
80
80
  <!-- ENDIF !reputation:disabled -->
81
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/groups">[[global:header.groups]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.groups}">{formattedNumber(counts.groups)}</span></a></li>
81
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/groups" role="menuitem">[[global:header.groups]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.groups}">{formattedNumber(counts.groups)}</span></a></li>
82
82
 
83
83
  <!-- IF canEdit -->
84
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/categories">[[user:watched-categories]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.categoriesWatched}">{formattedNumber(counts.categoriesWatched)}</span></a></li>
84
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/categories" role="menuitem">[[user:watched-categories]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.categoriesWatched}">{formattedNumber(counts.categoriesWatched)}</span></a></li>
85
85
  {{{ if isSelf }}}
86
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/tags">
86
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/tags" role="menuitem">
87
87
  [[user:watched-tags]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.tagsWatched}">{formattedNumber(counts.tagsWatched)}</span></a></li>
88
88
  {{{ end }}}
89
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/bookmarks">[[user:bookmarks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.bookmarks}">{formattedNumber(counts.bookmarks)}</span></a></li>
90
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/watched">[[user:watched]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.watched}">{formattedNumber(counts.watched)}</span></a></li>
91
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/ignored">[[user:ignored]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.ignored}">{formattedNumber(counts.ignored)}</span></a></li>
89
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/bookmarks" role="menuitem">[[user:bookmarks]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.bookmarks}">{formattedNumber(counts.bookmarks)}</span></a></li>
90
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/watched" role="menuitem">[[user:watched]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.watched}">{formattedNumber(counts.watched)}</span></a></li>
91
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/ignored" role="menuitem">[[user:ignored]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.ignored}">{formattedNumber(counts.ignored)}</span></a></li>
92
92
  <!-- IF !reputation:disabled -->
93
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/upvoted">[[global:upvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.upvoted}">{formattedNumber(counts.upvoted)}</span></a></li>
93
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/upvoted" role="menuitem">[[global:upvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.upvoted}">{formattedNumber(counts.upvoted)}</span></a></li>
94
94
  <!-- IF !downvote:disabled -->
95
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/downvoted">[[global:downvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.downvoted}">{formattedNumber(counts.downvoted)}</span></a></li>
95
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/downvoted" role="menuitem">[[global:downvoted]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.downvoted}">{formattedNumber(counts.downvoted)}</span></a></li>
96
96
  <!-- ENDIF !downvote:disabled -->
97
97
  <!-- ENDIF !reputation:disabled -->
98
- <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/uploads">[[global:uploads]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.uploaded}">{formattedNumber(counts.uploaded)}</span></a></li>
98
+ <li><a class="dropdown-item d-flex justify-content-between align-items-center" href="{config.relative_path}/user/{userslug}/uploads" role="menuitem">[[global:uploads]] <span class="badge bg-secondary rounded-pill ms-2" title="{counts.uploaded}">{formattedNumber(counts.uploaded)}</span></a></li>
99
99
  <!-- ENDIF canEdit -->
100
100
 
101
101
  {{{each profile_links}}}
@@ -1,4 +1,4 @@
1
- <button type="button" class="btn btn-outline-secondary d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
1
+ <button type="button" class="btn btn-outline-secondary d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2
2
  {{{ if selectedCategory }}}
3
3
  <span class="category-item">
4
4
  {buildCategoryIcon(selectedCategory, "20px", "rounded-circle")}
@@ -13,11 +13,11 @@
13
13
  </div>
14
14
  <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
15
15
  <li role="presentation" class="category" data-cid="all">
16
- <a class="dropdown-item" role="menu-item" href="{{{ if allCategoriesUrl }}}{config.relative_path}/{allCategoriesUrl}{{{ else }}}#{{{ end }}}"><i component="category/select/icon" class="fa fa-fw fa-check {{{if selectedCategory}}}invisible{{{end}}}"></i> [[unread:all-categories]]</a>
16
+ <a class="dropdown-item" role="menuitem" href="{{{ if allCategoriesUrl }}}{config.relative_path}/{allCategoriesUrl}{{{ else }}}#{{{ end }}}"><i component="category/select/icon" class="fa fa-fw fa-check {{{if selectedCategory}}}invisible{{{end}}}"></i> [[unread:all-categories]]</a>
17
17
  </li>
18
18
  {{{each categoryItems}}}
19
19
  <li role="presentation" class="category {{{ if ../disabledClass }}}disabled{{{ end }}}" data-cid="{../cid}" data-parent-cid="{../parentCid}" data-name="{../name}">
20
- <a class="dropdown-item" role="menu-item" href="#">{../level}<i component="category/select/icon" class="fa fa-fw fa-check {{{ if !../selected }}}invisible{{{ end }}}"></i>
20
+ <a class="dropdown-item" role="menuitem" href="#">{../level}<i component="category/select/icon" class="fa fa-fw fa-check {{{ if !../selected }}}invisible{{{ end }}}"></i>
21
21
  <span component="category-markup" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
22
22
  <div class="category-item d-inline-block">
23
23
  {{{ if ./icon}}}
@@ -1,4 +1,4 @@
1
- <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
1
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2
2
  <span component="category-selector-selected">
3
3
  {{{ if (selectedCategory && !showCategorySelectLabel) }}}
4
4
  <span class="category-item">
@@ -14,11 +14,11 @@
14
14
  </div>
15
15
  <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
16
16
  <li component="category/no-matches" role="presentation" class="category hidden">
17
- <a class="dropdown-item" role="menu-item">[[search:no-matches]]</a>
17
+ <a class="dropdown-item" role="menuitem">[[search:no-matches]]</a>
18
18
  </li>
19
19
  {{{each categoryItems}}}
20
20
  <li role="presentation" class="category {{{ if ../disabledClass }}}disabled {{{ end }}}" data-cid="{../cid}" data-name="{../name}" data-parent-cid="{../parentCid}">
21
- <a class="dropdown-item {{{ if ./disabledClass }}}disabled {{{ end }}}" role="menu-item" href="#">{../level}
21
+ <a class="dropdown-item {{{ if ./disabledClass }}}disabled {{{ end }}}" role="menuitem" href="#">{../level}
22
22
  <span component="category-markup" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
23
23
  <div class="category-item d-inline-block">
24
24
  {{{ if ./icon }}}
@@ -1,15 +1,15 @@
1
1
  <div class="btn-group bottom-sheet" component="thread/sort">
2
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
2
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
3
3
  <span class="visible-sm-inline visible-md-inline visible-lg-inline">[[topic:sort-by]]</span>
4
4
  <span class="visible-xs-inline"><i class="fa fa-fw fa-sort"></i></span>
5
5
  <span class="caret"></span>
6
6
  </button>
7
7
 
8
- <ul class="dropdown-menu dropdown-menu-end">
9
- <li><a class="dropdown-item" href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><i class="fa fa-fw"></i> [[topic:newest-to-oldest]]</a></li>
10
- <li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><i class="fa fa-fw"></i> [[topic:oldest-to-newest]]</a></li>
11
- <li><a class="dropdown-item" href="#" class="most_posts" data-sort="most_posts"><i class="fa fa-fw"></i> [[topic:most-posts]]</a></li>
12
- <li><a class="dropdown-item" href="#" class="most_votes" data-sort="most_votes"><i class="fa fa-fw"></i> [[topic:most-votes]]</a></li>
13
- <li><a class="dropdown-item" href="#" class="most_views" data-sort="most_views"><i class="fa fa-fw"></i> [[topic:most-views]]</a></li>
8
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
9
+ <li><a class="dropdown-item" href="#" class="newest_to_oldest" data-sort="newest_to_oldest" role="menuitem"><i class="fa fa-fw"></i> [[topic:newest-to-oldest]]</a></li>
10
+ <li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest" role="menuitem"><i class="fa fa-fw"></i> [[topic:oldest-to-newest]]</a></li>
11
+ <li><a class="dropdown-item" href="#" class="most_posts" data-sort="most_posts" role="menuitem"><i class="fa fa-fw"></i> [[topic:most-posts]]</a></li>
12
+ <li><a class="dropdown-item" href="#" class="most_votes" data-sort="most_votes" role="menuitem"><i class="fa fa-fw"></i> [[topic:most-votes]]</a></li>
13
+ <li><a class="dropdown-item" href="#" class="most_views" data-sort="most_views" role="menuitem"><i class="fa fa-fw"></i> [[topic:most-views]]</a></li>
14
14
  </ul>
15
15
  </div>
@@ -1,34 +1,34 @@
1
1
  <!-- IF showTopicTools -->
2
2
  <div class="btn-group thread-tools bottom-sheet">
3
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
4
4
  <span class="visible-sm-inline visible-md-inline visible-lg-inline">[[topic:thread-tools.title]]</span>
5
5
  <span class="visible-xs-inline"><i class="fa fa-fw fa-gear"></i></span>
6
6
  <span class="caret"></span>
7
7
  </button>
8
- <ul class="dropdown-menu dropdown-menu-end">
8
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
9
9
  <li>
10
- <a component="topic/mark-unread-for-all" href="#" class="dropdown-item">
10
+ <a component="topic/mark-unread-for-all" href="#" class="dropdown-item" role="menuitem">
11
11
  <i class="fa fa-fw fa-inbox"></i> [[topic:thread-tools.markAsUnreadForAll]]
12
12
  </a>
13
13
  </li>
14
14
  <li>
15
- <a component="topic/pin" href="#" class="dropdown-item">
15
+ <a component="topic/pin" href="#" class="dropdown-item" role="menuitem">
16
16
  <i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread-tools.pin]]
17
17
  </a>
18
18
  </li>
19
19
  <li>
20
- <a component="topic/unpin" href="#" class="hidden dropdown-item">
20
+ <a component="topic/unpin" href="#" class="hidden dropdown-item" role="menuitem">
21
21
  <i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread-tools.unpin]]
22
22
  </a>
23
23
  </li>
24
24
 
25
25
  <li>
26
- <a component="topic/lock" href="#" class="dropdown-item">
26
+ <a component="topic/lock" href="#" class="dropdown-item" role="menuitem">
27
27
  <i class="fa fa-fw fa-lock"></i> [[topic:thread-tools.lock]]
28
28
  </a>
29
29
  </li>
30
30
  <li>
31
- <a component="topic/unlock" href="#" class="hidden dropdown-item" >
31
+ <a component="topic/unlock" href="#" class="hidden dropdown-item" role="menuitem">
32
32
  <i class="fa fa-fw fa-unlock"></i> [[topic:thread-tools.unlock]]
33
33
  </a>
34
34
  </li>
@@ -36,25 +36,25 @@
36
36
  <li class="dropdown-divider"></li>
37
37
 
38
38
  <li>
39
- <a component="topic/move" href="#" class="dropdown-item">
39
+ <a component="topic/move" href="#" class="dropdown-item" role="menuitem">
40
40
  <i class="fa fa-fw fa-arrows"></i> [[topic:thread-tools.move]]
41
41
  </a>
42
42
  </li>
43
43
  {{{if template.category}}}
44
44
  <li>
45
- <a component="topic/move-all" href="#" class="dropdown-item">
45
+ <a component="topic/move-all" href="#" class="dropdown-item" role="menuitem">
46
46
  <i class="fa fa-fw fa-arrows"></i> [[topic:thread-tools.move-all]]
47
47
  </a>
48
48
  </li>
49
49
  {{{end}}}
50
50
  <li>
51
- <a component="topic/merge" href="#" class="dropdown-item">
51
+ <a component="topic/merge" href="#" class="dropdown-item" role="menuitem">
52
52
  <i class="fa fa-fw fa-code-fork"></i> [[topic:thread-tools.merge]]
53
53
  </a>
54
54
  </li>
55
55
 
56
56
  <li>
57
- <a component="topic/tag" href="#" class="dropdown-item">
57
+ <a component="topic/tag" href="#" class="dropdown-item" role="menuitem">
58
58
  <i class="fa fa-fw fa-tag"></i> [[topic:thread-tools.tag]]
59
59
  </a>
60
60
  </li>
@@ -62,24 +62,24 @@
62
62
  <li class="dropdown-divider"></li>
63
63
 
64
64
  <li>
65
- <a component="topic/delete" href="#" class="dropdown-item">
65
+ <a component="topic/delete" href="#" class="dropdown-item" role="menuitem">
66
66
  <i class="fa fa-fw fa-trash-o"></i> [[topic:thread-tools.delete]]
67
67
  </a>
68
68
  </li>
69
69
  <li>
70
- <a component="topic/restore" href="#" class="hidden dropdown-item">
70
+ <a component="topic/restore" href="#" class="hidden dropdown-item" role="menuitem">
71
71
  <i class="fa fa-fw fa-history"></i> [[topic:thread-tools.restore]]
72
72
  </a>
73
73
  </li>
74
74
  <li>
75
- <a component="topic/purge" href="#" class="hidden dropdown-item">
75
+ <a component="topic/purge" href="#" class="hidden dropdown-item" role="menuitem">
76
76
  <i class="fa fa-fw fa-eraser"></i> [[topic:thread-tools.purge]]
77
77
  </a>
78
78
  </li>
79
79
 
80
80
  {{{each thread_tools}}}
81
81
  <li>
82
- <a href="#" class="dropdown-item {thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a>
82
+ <a href="#" class="dropdown-item {thread_tools.class}" role="menuitem"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a>
83
83
  </li>
84
84
  {{{end}}}
85
85
  </ul>
@@ -1,7 +1,6 @@
1
1
  <!-- IF config.loggedIn -->
2
2
  <div class="btn-group bottom-sheet" component="topic/watch">
3
-
4
- <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
+ <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
5
4
  <span component="category/watching/menu" <!-- IF !../isWatched -->class="hidden"<!-- ENDIF !../isWatched -->><i class="fa fa-fw fa-bell-o"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[category:watching]]</span></span>
6
5
 
7
6
  <span component="category/tracking/menu" <!-- IF !../isTracked -->class="hidden"<!-- ENDIF !../isTracked -->><i class="fa fa-fw fa-inbox"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"> [[category:tracking]]</span></span>
@@ -12,9 +11,9 @@
12
11
  <span class="caret"></span>
13
12
  </button>
14
13
 
15
- <ul class="dropdown-menu dropdown-menu-end">
14
+ <ul class="dropdown-menu dropdown-menu-end" role="menu">
16
15
  <li>
17
- <a class="dropdown-item d-flex" href="#" component="category/watching" data-state="watching">
16
+ <a class="dropdown-item d-flex" href="#" component="category/watching" data-state="watching" role="menuitem">
18
17
  <span><i component="category/watching/check" class="fa fa-fw {{{ if ./isWatched }}}fa-check{{{ end }}}"></i></span>
19
18
  <div class="d-flex flex-column">
20
19
  <span><i class="fa fa-fw fa-bell-o"></i> [[category:watching]]</span>
@@ -24,7 +23,7 @@
24
23
  </li>
25
24
 
26
25
  <li>
27
- <a class="dropdown-item d-flex" href="#" component="category/tracking" data-state="tracking">
26
+ <a class="dropdown-item d-flex" href="#" component="category/tracking" data-state="tracking" role="menuitem">
28
27
  <span><i component="category/tracking/check" class="fa fa-fw {{{ if ./isTracked }}}fa-check{{{ end }}}"></i></span>
29
28
  <div class="d-flex flex-column">
30
29
  <span><i class="fa fa-fw fa-inbox"></i> [[category:tracking]]</span>
@@ -34,7 +33,7 @@
34
33
  </li>
35
34
 
36
35
  <li>
37
- <a class="dropdown-item d-flex" href="#" component="category/notwatching" data-state="notwatching">
36
+ <a class="dropdown-item d-flex" href="#" component="category/notwatching" data-state="notwatching" role="menuitem">
38
37
  <span><i component="category/notwatching/check" class="fa fa-fw {{{ if ./isNotWatched }}}fa-check{{{ end }}}"></i></span>
39
38
  <div class="d-flex flex-column">
40
39
  <span><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]</span>
@@ -44,7 +43,7 @@
44
43
  </li>
45
44
 
46
45
  <li>
47
- <a class="dropdown-item d-flex" href="#" component="category/ignoring" data-state="ignoring">
46
+ <a class="dropdown-item d-flex" href="#" component="category/ignoring" data-state="ignoring" role="menuitem">
48
47
  <span><i component="category/ignoring/check" class="fa fa-fw {{{ if ./isIgnored }}}fa-check{{{ end }}}"></i></span>
49
48
  <div class="d-flex flex-column">
50
49
  <span><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]</span>
@@ -73,12 +73,12 @@
73
73
  <div class="mb-3">
74
74
  <label class="form-label" for="filter-assignee">[[flags:filter-assignee]]</label>
75
75
  <div component="flags/filter/assignee" class="dropdown" data-filter-name="assignee">
76
- <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.assignee }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
76
+ <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.assignee }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
77
77
  <span class="filter-label">[[flags:filter-assignee]]</span>
78
78
  <span class="caret"></span>
79
79
  </a>
80
80
 
81
- <ul class="dropdown-menu" style="width: 350px;">
81
+ <ul class="dropdown-menu" style="width: 350px;" role="menu">
82
82
  <li class="px-3 py-1 d-flex flex-column gap-2">
83
83
  <input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
84
84
  <div component="user/filter/selected" class="d-flex flex-wrap gap-2">
@@ -103,12 +103,12 @@
103
103
  <div class="mb-3">
104
104
  <label class="form-label" for="filter-targetUid">[[flags:filter-targetUid]]</label>
105
105
  <div component="flags/filter/targetUid" class="dropdown" data-filter-name="targetUid">
106
- <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.targetUid }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
106
+ <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.targetUid }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
107
107
  <span class="filter-label">[[flags:filter-targetUid]]</span>
108
108
  <span class="caret"></span>
109
109
  </a>
110
110
 
111
- <ul class="dropdown-menu" style="width: 350px;">
111
+ <ul class="dropdown-menu" style="width: 350px;" role="menu">
112
112
  <li class="px-3 py-1 d-flex flex-column gap-2">
113
113
  <input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
114
114
  <div component="user/filter/selected" class="d-flex flex-wrap gap-2">
@@ -133,12 +133,12 @@
133
133
  <div class="mb-3">
134
134
  <label class="form-label" for="filter-reporterId">[[flags:filter-reporterId]]</label>
135
135
  <div component="flags/filter/reporterId" class="dropdown" data-filter-name="reporterId">
136
- <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.reporterId }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
136
+ <a component="user/filter/button" class="filter-btn btn btn-sm border {{{ if filters.reporterId }}}btn-primary{{{ else }}}btn-light{{{ end }}} dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
137
137
  <span class="filter-label">[[flags:filter-reporterId]]</span>
138
138
  <span class="caret"></span>
139
139
  </a>
140
140
 
141
- <ul class="dropdown-menu" style="width: 350px;">
141
+ <ul class="dropdown-menu" style="width: 350px;" role="menu">
142
142
  <li class="px-3 py-1 d-flex flex-column gap-2">
143
143
  <input type="text" class="form-control" component="user/filter/search" placeholder="[[search:type-a-username]]">
144
144
  <div component="user/filter/selected" class="d-flex flex-wrap gap-2">