AdaptiveCards icon indicating copy to clipboard operation
AdaptiveCards copied to clipboard

{Linked:Bug6381724}[Adaptive Cards - Customer Credit Request]: All the edit form fields are not associated with their respective labels.

Open Shireen2000 opened this issue 3 years ago • 1 comments

Target Platforms

Other

SDK Version

105.0.1300.0

Application Name

Adaptive Cards

Problem Description

Test Environment: OS Version: Dev (OS build 21390.1) Browser Version: 93.0.961.10 (Official build) dev(64-bit) URL: Designer | Adaptive Cards Screen Reader: Narrator

Pre-requisites: Copy the complete json code in ''Card Payload Editor". (Please refer attachment).

Repro Steps: Launch the above URL. Navigate to header control ‘Designer’ using tab key and activate through enter key. Navigate through the edit fields present. Observe the issue.

Actual Result: All the edit form fields are not associated with their respective labels.

Expected Result: All the edit form fields should be associated with their respective labels.

Observation: Issue is also repro with JAWS and NVDA.

User Experience: Screen readers users will face difficulty if All the edit form fields are not associated with their respective labels.

MAS Reference: Headings and Labels - Liquid (microsoft.com)

Have feedback to share on Bugs ? Please help fill Trusted Tester Bug Feedback (office.com)

Screenshots

https://user-images.githubusercontent.com/96283152/181273116-5c4b68ab-9ba6-465c-aeae-f20560414809.mp4

https://user-images.githubusercontent.com/96283152/181274364-74644888-8912-4327-9192-9fb0b03c5837.mp4

Card JSON

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.2",
  "body": [
    {
      "type": "ColumnSet",
      "columns": [
        {
          "type": "Column",
          "width": 2,
          "items": [
            {
              "type": "TextBlock",
              "text": "Please enter the below details to create Customer Credit request",
              "weight": "bolder",
              "wrap": true
            },
            {
              "type": "TextBlock",
              "text": "Invoices (Number - Amount(Currency)) *",
              "wrap": true
            },
            {
              "type": "Input.ChoiceSet",
              "id": "InvoiceNumber",
              "style": "expanded",
              "isMultiSelect": true,
              "choices": []
            },
            {
              "type": "TextBlock",
              "text": "Total Number of Hours to be Billed",
              "wrap": true
            },
            {
              "type": "Input.Number",
              "id": "InvoiceHours"
            },
            {
              "type": "TextBlock",
              "text": "Total Number of Units to be Billed",
              "wrap": true,
              "isVisible": "${HasUnitBasedDemands}"
            },
            {
              "type": "Input.Number",
              "id": "InvoiceUnits",
              "isVisible": "${HasUnitBasedDemands}"
            },
            {
              "type": "TextBlock",
              "text": "Total Amount of Expenses to be billed",
              "id": "InvoiceAmountTextBlock",
              "wrap": true
            },
            {
              "type": "Input.Number",
              "id": "InvoiceAmount"
            },
            {
              "type": "TextBlock",
              "text": "Transaction From Date"
            },
            {
              "type": "Input.Date",
              "id": "FromDate"
            },
            {
              "type": "TextBlock",
              "text": "Transaction To Date"
            },
            {
              "type": "Input.Date",
              "id": "ToDate"
            },
            {
              "type": "TextBlock",
              "text": "Comments",
              "wrap": true
            },
            {
              "type": "Input.Text",
              "id": "Comments",
              "isMultiline": true,
              "isRequired": true
            }
          ]
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Submit",
      "data": {
        "id": "CreditRequest_Submit"
      }
    }
  ]
}

Sample Code Language

No response

Sample Code

No response

Shireen2000 avatar Jul 27 '22 14:07 Shireen2000

Hello @Shireen2000,

This bug is fixed in schema 1.3 with the addition of the label property. By using labels for Inputs instead of TextBlocks, the form fields will be correctly associated with the text and Narrator should not have an issue.

Here is an example of the modified card payload.

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.3",
  "body": [
    {
      "type": "ColumnSet",
      "columns": [
        {
          "type": "Column",
          "width": 2,
          "items": [
            {
              "type": "TextBlock",
              "text": "Please enter the below details to create Customer Credit request",
              "weight": "bolder",
              "wrap": true
            },
            {
              "type": "Input.ChoiceSet",
              "id": "InvoiceNumber",
              "style": "expanded",
              "isMultiSelect": true,
              "choices": [],
              "label": "Invoices (Number - Amount(Currency)) *"
            },
            {
              "type": "Input.Number",
              "id": "InvoiceHours",
              "label": "Total Number of Hours to be Billed"
            },
            {
              "type": "Input.Number",
              "id": "InvoiceUnits",
              "isVisible": "${HasUnitBasedDemands}",
              "label": "Total Number of Units to be Billed"
            },
            {
              "type": "Input.Number",
              "id": "InvoiceAmount",
              "label": "Total Amount of Expenses to be billed"
            },
            {
              "type": "Input.Date",
              "id": "FromDate",
              "label": "Transaction From Date"
            },
            {
              "type": "Input.Date",
              "id": "ToDate",
              "label": "Transaction To Date"
            },
            {
              "type": "Input.Text",
              "id": "Comments",
              "isMultiline": true,
              "isRequired": true,
              "label": "Comments"
            }
          ]
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Submit",
      "data": {
        "id": "CreditRequest_Submit"
      }
    }
  ]
}

Additionally, see the Important note about accessibility that has been added to our documentation site: https://adaptivecards.io/explorer/Input.Text.html.

Let me know if you have any questions!

anna-dingler avatar Aug 25 '22 17:08 anna-dingler

Adding A11yTTValidated tag as issue is not repro.

vagpt avatar Apr 28 '23 12:04 vagpt