Accessible Power BI reporting
Visual and programmatic reading order
All Power BI dashboards should:
- Contain a clear structure and flow
- Ensure that each page contains related content
- Have a logical journey
- Have a consistent structure
Visual reading order
Use a standard visual reading order. Make the order that users should read the content of the report pages obvious.
Do this by making sure your content follows a top to bottom, left to right reading order. This can be either:
- Top left, top middle, top right, then bottom left, bottom middle, bottom right, or
- Top left to bottom left, top middle to bottom middle, top right to bottom right
Layers and tabbing order
You can layer different items on top of one another in Power BI. This can be to:
- Make the content look more interesting
- Improve ease of moving items by grouping items together as one
When building a dashboard, we often do not consider the order in which we create the objects on each page. By default, the order that you create objects will be the:
- Tabbing order when using keyboard navigation
- Order that a screen reader reads out the content
The difference between layers and tabbing
Layering is where we see an object compared to other objects around it.
Tabbing is the order in which we want the reader to experience each object. Tabbing is especially important for people using a keyboard or other assistive technology, such as screen readers.
Tab ordering
When layering objects, we may want to see one object in front of another. This doesn't mean we want to interact with them in the same order we see them. For example, the order in which you see the objects might be different from the order in which you need to use them.
So, you must use tab ordering. This organizes the order that different technologies interpret each object.
Tab ordering should follow the visual navigation of the dashboard (left to right, top to bottom).
Example of layered objects showing the visual layer order:
Example of layered objects showing the correct tab ordering (left to right):
The screenshot examples show two layered textboxes. One textbox is on the left and is layered behind the second textbox which is on the right.
The default tab order shows that the textbox in the front will be tabbed to or read out by a screen reader before the textbox at the back. This order is incorrect. It does not follow the visual reading order (left to right).
The textbox at the back should be read first and the textbox in the front should be read after. This is achieved by changing the tab ordering.
How to view and edit the tab order
- Go to the "Selection" menu
- Select the "Tab order" option
- Make sure the objects are in the order you want the viewer to consume the report. Move objects up and down the list to re-prioritise.
You can also change the order within groupings in this way.
You must hide decorative images in your dashboard. Do this by selecting the hide/display option (eye symbol). By doing this, screen readers and tabbing will ignore this object.
Layers
How you order layers affects what is visible in your dashboard.
Remove unnecessary layering and coloured backgrounds. Do not include a coloured background or shapes beneath a graph or table where possible.
Layering lots of objects over each other can make colours hard to see. Especially when users invert the colours or use high-contrast mode.
How to view the layering order
To access the layer selection panel, go to:
- "View"
- "Select"
- Choose the layer option (if it's not already chosen). From here you can also move an object above or below another object to change their layering order.
How to edit the layering order
- Select the object you want to move
- Select "Format"
- Select "Bring forward" to move the object up or select "Send backward" to move it down
Grouping layers
Grouping layers is useful when you want to associate two or more objects with each other. This is so that they stay together and move together. For example, you can group a picture and a graph together.
To group layers you can use the layer selection panel or this keyboard method:
- Select each object whilst holding the "Ctrl" button
- Right-click one of the objects
- Select "Group"
You can ungroup them the same way by selecting "Ungroup." Once grouped, you can move both objects at the same time with one click.
Once you group layers together, you will see that the objects are in one group within the tab section. When you tab across the dashboard it will now treat these grouped objects as one.
Layer names
You must ensure that all layers have unique and descriptive names/alternative text. This includes objects and combined/grouped layers. The layer name should explain what the layer shows.
Screen readers will read out the layer name.
Add layer names by:
- Double click on the name in the layer menu. Add an alternative text description for the layer (object or grouped layer), or
- Click on the group in the layer menu. Go to the "Visualizations pane", then "Format visuals", then the "alt text" section. Add an alternative text description for the layer (object or grouped layer).
Having clear layer names makes it quicker and easier for users to navigate the dashboard. For example, if a user wanted to ignore the filters and skip straight to a specific object, such as a graph.
