PBIX A11y update: alt text for groups, a rebuilt tab order check, and a clutter fix

A few updates went live on pbiaudits.com this week, following the investigation I shared in Alt Text for Grouped Visuals in Power BI: What I Learnt from a Pull Request.

That investigation also led me to revisit tab order, including the Have tab order match visual order button covered in Meagan Longoria’s 2021 post,  “What are those new buttons under tab order in Power BI?“.

While testing the changes, I also found an issue with the clutter check for grouped visuals.

Here’s what changed, and a few decisions behind the updates.

Groups are now recognised and checked

Before this change, PBIX A11y read a group as an unnamed “Unknown” visual. It produced a generic “Missing alt text” failure with no hint that a group was involved, and it counted the group as a visual in the score.

Now groups are recognised and named in the results, for example Visual group “Revenue block”. This works in older .pbix files and in PBIP/PBIR projects, including nested groups. A group is flagged if its alt text is missing, too short, or a placeholder such as “Group 1” or “chart”. The wording is specific to groups, and the fix steps point you to the Format pane, Properties, Alt text.

The reason it matters is that when you tab through a report and reach a group, focus lands on the group first. A screen reader user hears the group before any visual inside it, so a group with no alt text tells them nothing at that point.

The visuals inside a group are still checked one by one, and each finding now says which group the visual sits in. The group alt text does not replace them. It says what the group is, and the elements give the detail.

There is one Power BI limit to know about. Group alt text cannot use conditional formatting or fx, so it has to be static and general. Put the changing figures in the dynamic alt text of the elements inside the group.

If a group contains decorative elements, hiding them from the tab order is often all they need, because keyboard navigation skips anything hidden there. A new advisory note reminds you of this. It is not scored, and it only appears when your report contains groups.

Group findings sit under the existing Alt text category (WCAG 2.2 success criterion 1.1.1, Level A). They show up in the results, totals, filters and PDF export like any other alt text issue.

The group box itself is not checked for titles, axis titles, font size, contrast or target size, because those apply to individual visuals. In tab order, a group is a tab stop among its neighbours. A group no longer counts as a visual in the score total, but a group alt text failure still counts as an issue, so on a small report one group failure costs a little more.

Tab order has been rebuilt

Tab order has always been the hardest check for me to get right. The old version read one page-wide list, skipped groups, and looked for duplicate values across the whole page. That does not match how Power BI works, so it could raise false duplicates for grouped visuals.

The new version follows the nesting. Each group has its own sequence, so items are labelled the way the Tab order pane shows them (1, 1.1, 1.2 and so on), and a group is a tab stop among its neighbours. Grouped visuals now use their true position on the page, not their position relative to the group.

The result is split into two kinds of feedback.

The first kind is findings, which affect the score. They are duplicate positions within the same level, and decorative items that can still take keyboard focus, including inside groups. The fix text now points you to the eye icon in the Tab order tab.

The second kind is review notes, which do not affect the score. There are three: items that overlap, no tab order set, and a tab order that does not follow the layout.

The layout note is the new one. PBIX A11y works out the order your layout implies. It reads the visuals row by row, left to right, then moves to the next row down. Two visuals count as the same row when they share at least half the height of the shorter one, so a few pixels between a title and a button no longer change the order. A visual sitting on top of another, such as a card inside a donut, comes straight after the visual underneath it. Hidden visuals are skipped, and each group is ordered within itself. If your tab order differs, the note shows the first position that differs and the full expected order as a numbered list, which you apply in the Tab order pane. PBIX A11y runs in your browser and does not change your file.

I decided not to score that note, because the expected order is based on position only, and some authors place a button first or last on purpose. The note says so. It also explains that Power BI’s “Have tab order match visual order” button sorts by top edge and then left edge. That means it can put a button a few pixels higher ahead of a title on the same row, and it does not know that a stacked visual belongs to the one underneath. The thresholds I use (half the height for a row, 90 percent of the area for a stacked visual) are my own choices, not Power BI’s, and I may adjust them as I see more reports.

The check cannot tell whether you pressed the button, because only the resulting order is saved, so it checks the result. Review notes appear on the results page only. The PDF export lists the scored findings and adds one line saying the review notes are on the results page.

Clutter, target size and smaller changes

While testing groups I found that the clutter check measured grouped visuals from their position inside the group, not their position on the page. The same layout could therefore give a different clutter result depending on whether it was grouped. Clutter now uses the true page position, and it counts every data visual inside a group as if it were not grouped, so grouping does not hide anything. The group box itself is not counted, so nothing is counted twice. Text boxes, shapes, images, buttons, slicers and navigators are still not counted, and a row of adjacent cards counts as one strip. The target size check now also uses true positions for grouped items.

Reports without groups score exactly as before. Reports with groups may see different clutter results, and grouped visuals that used to share a number with a top-level visual are no longer counted as duplicates in tab order, so some reports will score better than they did.

Two smaller changes. The check that the Rule Catalog called “Button size” is now “Target size (button)”, so it matches the WCAG term (success criterion 2.5.8) used everywhere else on the site. And the PDF export now carries one line saying that review notes and the groups advisory are shown on the results page and are not scored, so anyone who only reads the PDF knows they exist. The How it works page has been updated to cover all of this.

What is next

The PBIR A11y CLI has not been updated with these changes yet. Thank you to John Kerski, whose pull request started all of this, and to Meagan Longoria, whose 2021 post explained how the tab order button sorts.

One comment

Leave a Reply

Discover more from Data Tides

Subscribe now to keep reading and get access to the full archive.

Continue reading