#16433 closed enhancement (fixed)
Extend function to optionally include commenter name in comment_reply_link
Reported by: | Elpie | Owned by: | SergeyBiryukov |
---|---|---|---|
Milestone: | 4.1 | Priority: | low |
Severity: | normal | Version: | 3.0.4 |
Component: | Comments | Keywords: | has-patch |
Focuses: | accessibility | Cc: |
Description
Screen readers recognize links and make them searchable. Unique names facilitate that search. Links need to have unique names that are descriptive and make sense when read out of context. WordPress allows users to set the text they want to display on the comment_reply_link but then this text is repeated for every comment on a post.
WCAG Checkpoint 13.1 says: Clearly identify the target of each link. [Priority 2]
For improved accessibility it is far better to have the comment_reply_link include the commenter name. "Reply to Tom Thumb" and ideally, include a title on the link that includes both the commenter name and comment number. Users should have the option to filter for their custom text and to include (or not include) the commenter name.
At the moment, anyone who wants to present an accessible front-end cannot use threaded comments unless they are prepared to generate masses of the same, generic, unhelpful link.
Attachments (4)
Change History (26)
#3
@
14 years ago
Possible fix. Just gives the user a %s option in 'reply_text' which will add the persons username. Not sure if someone wants to change this to allow different tags (username, first name, last name, nickname, etc.).
#4
@
14 years ago
- Milestone changed from Awaiting Review to Future Release
- Priority changed from normal to low
- Type changed from defect (bug) to enhancement
Like that idea, andrewryno.
I had to use this nonsense to do it!
function txfx_reply_to_comment_link( $link, $args, $comment ) { if ( !empty( $comment->comment_type ) ) return ''; $link = str_replace( '>' . $args['reply_text'] . '<', '>' . esc_html( 'Reply to ' . $comment->comment_author ) . ' →<', $link ); return $link; } add_filter( 'comment_reply_link', 'txfx_reply_to_comment_link', 10, 3 );
#5
@
14 years ago
Thanks andrewryno. This will make a significant difference to frontend accessibility for the average user. Accessibility out of the box is far preferable to having to add custom functions on a theme by theme basis. Cheers.
This is a trivial change - any chance it can get into 3.1?
#7
@
14 years ago
- Owner set to merty
- Status changed from new to accepted
Applied a patch to the current repository. Also the patch can be found in the attachments section of the ticket.
#12
@
11 years ago
- Cc scottsweb added
Due to the useless / repetitive nature of title attributes when used in screen readers (discussed in #24766), it may not be best to proceed with adding a title attribute for this ticket.
If this was within wp-admin we could alter the actual anchor text to include both the commenter name and comment number, then wrap that new text within <span class="screen-reader-text">
. For the front end though it would require themes support the screen-reader-text class along with http://codex.wordpress.org/CSS#WordPress_Generated_Classes which we cannot guarantee at the moment.
#14
follow-up:
↓ 15
@
10 years ago
Added a new patch. This patch uses aria-label; in supporting screen readers, this means that the full text of the aria-label will be used in generated lists of links, although older screen readers will still only get 'Reply'.
#15
in reply to:
↑ 14
@
10 years ago
Replying to joedolson:
Added a new patch. This patch uses aria-label; in supporting screen readers, this means that the full text of the aria-label will be used in generated lists of links, although older screen readers will still only get 'Reply'.
The 'Reply' comes from one of the default args that can be overridden with passed-in args. Should your aria-label
use this default (instead of hard-coding 'Reply'), or should a new reply_text_extended
(or some named variant) be added as a default arg so it too can be overridden?
#16
follow-up:
↓ 17
@
10 years ago
Maybe...two considerations there:
1) that would potentially lead to translation challenges with the connecting term
2) if the theme passes a non-word value, the label could lose meaning.
Those are risks with using the default; but adding another default arg is more reasonable, although it provides themes with an opportunity to decrease the accessibility of their themes in a way I'd prefer not be available as a path, personally.
What do you think?
#17
in reply to:
↑ 16
@
10 years ago
Replying to joedolson:
Maybe...two considerations there:
1) that would potentially lead to translation challenges with the connecting term
Agreed. "Reply" and "Reply to ..." may not have the same first word in non-English languages.
2) if the theme passes a non-word value, the label could lose meaning.
Disagree. Theme authors can already filter the whole of the comment reply link anyway (or the comment callback), and I guess they could also filter your new aria-label string on gettext
too if they only want to change the "Reply to" bit. So adding it as a default would be more about providing a consistent customisation interface for developers than anything else, allowing them to perhaps reply to comment number (which would be unique), rather than username (which wouldn't, when there are comments by the same author name).
#18
@
10 years ago
- Milestone changed from Future Release to 4.1
- Owner changed from merty to SergeyBiryukov
#19
@
10 years ago
16433.3.patch looks good to me.
I don't see a particular benefit in customizing this label, but we also have a customizable 'title_reply_to' label in comment_form()
, so I guess it would be consistent.
Somewhat related to #10569.