对于内部的嵌套按钮标签,还有其他标签,例如部分,标签,段落。屏幕阅读器将所有标签叙述为按钮

发布于 2025-01-27 05:44:34 字数 2188 浏览 3 评论 0原文

我有一个可访问性错误是,依靠屏幕读取器的用户正在受到影响,因为NVDA正在使用down down arrow键进行导航,以多次叙述信息的多次信息。 内部有一个按钮标签,还有其他标签。但是,屏幕阅读器将其他标签读为按钮,我需要解决这个问题。

期望屏幕读取器显示仅一次叙述按钮一次,只是不再使用其他标签重复。

<button class="btn" [ngClass]="{'border-color-Red': answer?.AnswerId == 1,
  'border-color-Orange': answer?.AnswerId == 2,
  'border-color-Yellow': answer?.AnswerId == 3,
  'border-color-LightGreen': answer?.AnswerId == 4, 
  'border-color-Green': answer?.AnswerId == 5}" (click)="selectAnswer(answer)">
  <section class="d-flex">
    <section class="header" [ngClass]="{'color-Red': assesment?.SelectedAnswerId == 1 && answer?.AnswerId == 1, 
      'color-Orange': assesment?.SelectedAnswerId == 2 && answer?.AnswerId == 2,
      'color-Yellow': assesment?.SelectedAnswerId == 3 && answer?.AnswerId == 3,
      'color-LightGreen': assesment?.SelectedAnswerId == 4  && answer?.AnswerId == 4, 
      'color-Green': assesment?.SelectedAnswerId == 5 && answer?.AnswerId == 5,
      'color-pink': answer?.AnswerId == 1,
      'color-light-orange':answer?.AnswerId == 2,
      'color-light-yellow':answer?.AnswerId == 3,
      'color-light-yellowgreen':answer?.AnswerId == 4,
      'color-green-light':answer?.AnswerId == 5}">
      <h6 class="font-caption-alt">{{answer.AnswerId}} = {{answer.Answer}}</h6>
    </section>
    <section class="body">
      <p>{{answer.AnswerDesciption}}</p>
    </section>
    <section class="footer">
      <label class="font-caption">
        <input type="radio" id="answer-{{assesment?.Id}}-select-{{answer.Id}}"
          [attr.aria-label]="isSelectedAnswer(assesment, answer?.AnswerId)?'Selected Radio':'Not Selected Radio'"
          name="{{assesment?.Id}}-select" (click)="selectAnswer(assesment,answer)"
          [checked]="isSelectedAnswer(assesment, answer?.AnswerId)" tabindex="0" />
        <label for="answer-{{assesment?.Id}}-select-{{answer.Id}}"></label>
        Select
      </label>
    </section>
  </section>
</button>

I have an accessibility bug that is Users who rely on screen readers are getting impacted as NVDA is narrating information multiple times for multiple buttons present in the page, while navigating using down arrow key.
There is a button tag inside there is other tags. But screen reader reading other tags as button, and I need to fix that.

Expecting that Screen reader show narrate only Button one time only not to repeat again with other tags.

<button class="btn" [ngClass]="{'border-color-Red': answer?.AnswerId == 1,
  'border-color-Orange': answer?.AnswerId == 2,
  'border-color-Yellow': answer?.AnswerId == 3,
  'border-color-LightGreen': answer?.AnswerId == 4, 
  'border-color-Green': answer?.AnswerId == 5}" (click)="selectAnswer(answer)">
  <section class="d-flex">
    <section class="header" [ngClass]="{'color-Red': assesment?.SelectedAnswerId == 1 && answer?.AnswerId == 1, 
      'color-Orange': assesment?.SelectedAnswerId == 2 && answer?.AnswerId == 2,
      'color-Yellow': assesment?.SelectedAnswerId == 3 && answer?.AnswerId == 3,
      'color-LightGreen': assesment?.SelectedAnswerId == 4  && answer?.AnswerId == 4, 
      'color-Green': assesment?.SelectedAnswerId == 5 && answer?.AnswerId == 5,
      'color-pink': answer?.AnswerId == 1,
      'color-light-orange':answer?.AnswerId == 2,
      'color-light-yellow':answer?.AnswerId == 3,
      'color-light-yellowgreen':answer?.AnswerId == 4,
      'color-green-light':answer?.AnswerId == 5}">
      <h6 class="font-caption-alt">{{answer.AnswerId}} = {{answer.Answer}}</h6>
    </section>
    <section class="body">
      <p>{{answer.AnswerDesciption}}</p>
    </section>
    <section class="footer">
      <label class="font-caption">
        <input type="radio" id="answer-{{assesment?.Id}}-select-{{answer.Id}}"
          [attr.aria-label]="isSelectedAnswer(assesment, answer?.AnswerId)?'Selected Radio':'Not Selected Radio'"
          name="{{assesment?.Id}}-select" (click)="selectAnswer(assesment,answer)"
          [checked]="isSelectedAnswer(assesment, answer?.AnswerId)" tabindex="0" />
        <label for="answer-{{assesment?.Id}}-select-{{answer.Id}}"></label>
        Select
      </label>
    </section>
  </section>
</button>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文