microsoft / azuredatastudio

Azure Data Studio is a data management and development tool with connectivity to popular cloud and on-premises databases. Azure Data Studio supports Windows, macOS, and Linux, with immediate capability to connect to Azure SQL and SQL Server. Browse the extension library for more database support options including MySQL, PostgreSQL, and MongoDB.
https://learn.microsoft.com/sql/azure-data-studio
MIT License
7.56k stars 898 forks source link

A11y_Azure Data Studio extension 'Azure SQL Migration'_View/Select_Focus order: Keyboard tab focus is going to database twice i.e. checkbox and entire row where functionality for both is same(selecting database) #19862

Closed NiharikaTipirishetty closed 1 year ago

NiharikaTipirishetty commented 2 years ago

"Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”

Github Tags:

A11yMAS; #A11yTCS; #A11ySev2; #Benchmark; #SH-AzureSQLMigration-Win32-Jun2022; #DesktopApp; #Win32; #SQL Migration Control Plane; #WCAG2.4.3; #Focus order;

Environment and OS details:

Azure Data Studio Version 1.37.0(User Setup) Windows Version 21H2 (OS Build 22000.675)

Repro Steps:

  1. Install Azure data studio app and install Azure SQL migration extension
  2. Connect to SQL server, tab till respective server, right click and select manage
  3. Tab till Azure SQL Migration in sitemap and press enter key
  4. Tab till migrate to azure sql and press enter
  5. Navigate to databases grid in "Databases for assessment", select few databases and click next.
  6. In Assessment results and recommendations step, select a azure sql target and navigate to "View/select" button and press enter
  7. In databases grid, tab till any database in "Assessment results" dialog and verify that focus is going to entire row and checkbox where the functionality for both is same(selecting database)

Actual Result:

Keyboard tab focus is going to database twice i.e. checkbox and entire row where functionality for both is same(selecting database)

Expected Result:

Keyboard tab focus should go to database only once for selecting database either checkbox or entire row. When focus lands on entire row and user presses space to select it checkbox should get selected or focus must land on checkbox itself and on pressing space it should get selected.

Attachment:

Focus order_

aasimkhan30 commented 2 years ago

@NiharikaTipirishetty, the focus of the row selects the row and shows the content on the right side of the screen. Whereas the focus of the checkbox just clicks the checkbox. So, they are not performing the same action. What should be the expected behavior in this case?

aasimkhan30 commented 2 years ago

Closing this issue, as both the focus item have different behaviors and it is working as intended.

VijayaBharathyA commented 1 year ago

@aasimkhan30

Here when we select row as well as when we check checkboxes also the content on the right side of the screen is appearing. Please Reactivate bug

Attachment for Reference : 19862

aasimkhan30 commented 1 year ago

@VijayaBharathyA ,

If we focus on the row and press enter/space only the right content gets loaded However, if we focus the checkbox and press enter/space, both the database gets checked and the right content also gets loaded.

This is the ideal and expected behavior as having these 2 different focuses lets the user see the content on the right without checking the database.

@alanrenmsft and @Charles-Gagnon what would you suggest the behavior be in this case.

Charles-Gagnon commented 1 year ago

I suppose you could just change it so clicking the checkbox doesn't select the row in this case. Was that an intentional part of the design?

I'm not sure why this is considered an a11y bug though - just because they both result in the content being shown doesn't seem like a bad thing to me.

Might be worth bringing to the office hours to see what they have to say.

VijayaBharathyA commented 1 year ago

@Charles-Gagnon Could you please join office hour to discuss this issue and get it confirmed?

brian-harris commented 1 year ago

@VijayaBharathyA This bug seems to be related to the ADS DeclarativeTable component and not the SQL-Migration extension. I am closing this bug.

Please open a 3rd party issue for the DeclarativeTable component and assign to the ADS core team with the context above as well.

This is a sample of how to repro/create the component:

private _databaseTable!: azdata.DeclarativeTableComponent; this._databaseTable = this._view.modelBuilder.declarativeTable().withProps( { ariaLabel: constants.DATABASES_TABLE_TILE, enableRowSelection: true, width: 230, CSSStyles: { 'table-layout': 'fixed' }, columns: [ { displayName: '', valueType: azdata.DeclarativeDataType.boolean, width: 20, isReadOnly: false, showCheckAll: true, headerCssStyles: headerLeft, }, { displayName: constants.DATABASE, // undo when bug #16445 is fixed // valueType: azdata.DeclarativeDataType.component, valueType: azdata.DeclarativeDataType.string, width: 160, isReadOnly: true, headerCssStyles: headerLeft }, { displayName: constants.ISSUES, valueType: azdata.DeclarativeDataType.string, width: 50, isReadOnly: true, headerCssStyles: headerRight, } ] } ).component();

VijayaBharathyA commented 1 year ago

Closed;

As per discussion with SME, This bug can be closed and I have logged New usability issue for the content target platform should not get changed when checking /Unchecking the checkbox Bug URL: https://github.com/microsoft/azuredatastudio/issues/22860