1
0
mirror of https://github.com/flarum/core.git synced 2025-08-06 08:27:42 +02:00

fix: resolve a11y warnings in Admin Frontend (#4184)

This commit is contained in:
Davide Iadeluca
2025-02-11 20:24:44 +01:00
committed by GitHub
parent 79e969778e
commit a34a5d4d62
5 changed files with 18 additions and 2 deletions

View File

@@ -19,7 +19,12 @@ function tagItem(tag) {
<div className="TagListItem-info"> <div className="TagListItem-info">
{tagIcon(tag)} {tagIcon(tag)}
<span className="TagListItem-name">{tag.name()}</span> <span className="TagListItem-name">{tag.name()}</span>
<Button className="Button Button--link" icon="fas fa-pencil-alt" onclick={() => app.modal.show(EditTagModal, { model: tag })} /> <Button
className="Button Button--link"
icon="fas fa-pencil-alt"
aria-label={app.translator.trans('flarum-tags.admin.tags.edit_tag_label', { tag: tag.name() })}
onclick={() => app.modal.show(EditTagModal, { model: tag })}
/>
</div> </div>
{!tag.isChild() && tag.position() !== null && ( {!tag.isChild() && tag.position() !== null && (
<ol className="TagListItem-children TagList"> <ol className="TagListItem-children TagList">

View File

@@ -56,6 +56,7 @@ flarum-tags:
about_tags_text: "Tags are used to categorize discussions. Primary tags are like traditional forum categories: they can be arranged in a two-level hierarchy. Secondary tags do not have hierarchy or order, and are useful for micro-categorization." about_tags_text: "Tags are used to categorize discussions. Primary tags are like traditional forum categories: they can be arranged in a two-level hierarchy. Secondary tags do not have hierarchy or order, and are useful for micro-categorization."
create_primary_tag_button: Create Primary Tag create_primary_tag_button: Create Primary Tag
create_secondary_tag_button: Create Secondary Tag create_secondary_tag_button: Create Secondary Tag
edit_tag_label: Edit Tag {tag}
primary_heading: Primary Tags primary_heading: Primary Tags
secondary_heading: Secondary Tags secondary_heading: Secondary Tags
settings_heading: Settings settings_heading: Settings

View File

@@ -59,7 +59,12 @@ export default class PermissionGrid<CustomAttrs extends IPermissionGridAttrs = I
<th> <th>
{scope.label}{' '} {scope.label}{' '}
{!!scope.onremove && ( {!!scope.onremove && (
<Button icon="fas fa-times" className="Button Button--text PermissionGrid-removeScope" onclick={scope.onremove} /> <Button
icon="fas fa-times"
className="Button Button--text PermissionGrid-removeScope"
aria-label={app.translator.trans('core.admin.permissions.remove_scope_label', { scope: scope.label })}
onclick={scope.onremove}
/>
)} )}
</th> </th>
))} ))}

View File

@@ -23,6 +23,7 @@ export default class Pagination<CustomAttrs extends IPaginationInterface = IPagi
<Button <Button
disabled={currentPage === 1} disabled={currentPage === 1}
title={app.translator.trans('core.lib.pagination.first_button')} title={app.translator.trans('core.lib.pagination.first_button')}
aria-label={app.translator.trans('core.lib.pagination.first_button')}
onclick={() => onChange(1)} onclick={() => onChange(1)}
icon="fas fa-step-backward" icon="fas fa-step-backward"
className="Button Button--icon Pagination-first" className="Button Button--icon Pagination-first"
@@ -30,6 +31,7 @@ export default class Pagination<CustomAttrs extends IPaginationInterface = IPagi
<Button <Button
disabled={currentPage === 1} disabled={currentPage === 1}
title={app.translator.trans('core.lib.pagination.back_button')} title={app.translator.trans('core.lib.pagination.back_button')}
aria-label={app.translator.trans('core.lib.pagination.back_button')}
onclick={() => onChange(currentPage - 1)} onclick={() => onChange(currentPage - 1)}
icon="fas fa-chevron-left" icon="fas fa-chevron-left"
className="Button Button--icon Pagination-back" className="Button Button--icon Pagination-back"
@@ -77,6 +79,7 @@ export default class Pagination<CustomAttrs extends IPaginationInterface = IPagi
<Button <Button
disabled={!moreData} disabled={!moreData}
title={app.translator.trans('core.lib.pagination.next_button')} title={app.translator.trans('core.lib.pagination.next_button')}
aria-label={app.translator.trans('core.lib.pagination.next_button')}
onclick={() => onChange(currentPage + 1)} onclick={() => onChange(currentPage + 1)}
icon="fas fa-chevron-right" icon="fas fa-chevron-right"
className="Button Button--icon Pagination-next" className="Button Button--icon Pagination-next"
@@ -84,6 +87,7 @@ export default class Pagination<CustomAttrs extends IPaginationInterface = IPagi
<Button <Button
disabled={!moreData} disabled={!moreData}
title={app.translator.trans('core.lib.pagination.last_button')} title={app.translator.trans('core.lib.pagination.last_button')}
aria-label={app.translator.trans('core.lib.pagination.last_button')}
onclick={() => onChange(totalPageCount)} onclick={() => onChange(totalPageCount)}
icon="fas fa-step-forward" icon="fas fa-step-forward"
className="Button Button--icon Pagination-last" className="Button Button--icon Pagination-last"

View File

@@ -310,6 +310,7 @@ core:
participate_heading: Participate participate_heading: Participate
post_without_throttle_label: Reply multiple times without waiting post_without_throttle_label: Reply multiple times without waiting
read_heading: Read read_heading: Read
remove_scope_label: Remove scope of {scope}
rename_discussions_label: Rename discussions rename_discussions_label: Rename discussions
reply_to_discussions_label: Reply to discussions reply_to_discussions_label: Reply to discussions
search_users_label: => core.ref.search_users search_users_label: => core.ref.search_users