axe-windows icon indicating copy to clipboard operation
axe-windows copied to clipboard

Handle BoundingRectangleSizeReasonable rule for elements with area of less than 25 pixels

Open dilyantraykov opened this issue 3 years ago • 9 comments

Hello,

In our application, we have rectangles (displayed by a sparkline control) that have an area of fewer than 25 pixels (for example, 12x2 pixels).

image

What would be the suggested approach for handling these elements so that they're not marked as problematic by the Accessibility Insights for Windows tool?

Thank you in advance for your guidance on the matter.

dilyantraykov avatar Oct 11 '22 16:10 dilyantraykov

Thank you for using Accessibility Insights for Windows, @dilyantraykov!

We'd love to offer guidance but need some more information from you:

  1. It would be most helpful if you could provide an a11yTest file that contains the accessibility errors you are troubleshooting. Please ensure that this file does not contain sensitive or proprietary information.
  2. The other way to give us the most context possible would be to create a minimal reproduction of the type of error you are seeing in source code for a sample app. This would allow us to run Accessibility Insights for Windows on our end and better understand the case you are trying to address.
  3. Some background and context around the sparkline control you are using would be helpful. What kind of application are you building? What is the use case for displaying this particular control?

Best, Madalyn

madalynrose avatar Oct 13 '22 14:10 madalynrose

The team requires additional author feedback; please review their replies and update this issue accordingly. Thank you for contributing to Accessibility Insights!

ghost avatar Oct 13 '22 14:10 ghost

BoundingRectangleError.zip TestResults 10-13-22.zip

Hello Madalyn,

Thank you very much for your response!

Please find attached both a small sample project which demonstrates the error, as well as the test results I observe at my end.

To answer point 3. of your inquiry, the RadSparkline control (for WPF applications) is mainly used by our clients to outline trends. I've hardcoded the data for simplicity, but in the common case, it is generated dynamically.

I hope you find this information sufficient to suggest a viable approach for handling this use case. Please let me know if you require any additional information.

dilyantraykov avatar Oct 13 '22 14:10 dilyantraykov

@dilyantraykov ,

You can safely ignore this result. It seems legitimately possible for the bounding rectangle of a sparkline to have an area less than 25 pixels.

RobGallo avatar Oct 17 '22 15:10 RobGallo

For those on the A11y Insights team, we should create a heuristic based on the following criteria to avoid running the bounding rectangle area rule on sparklines:

  • ItemStatus property matches XPath "<Property Name="DataContext" Value="Telerik.Windows.Controls.Sparklines.SparklineColumnDataPoint" />"
  • ControlType = Custom

We should also move this issue to the axe-windows repo.

Here is the full value of the ItemStatus property:

<?xml version="1.0" encoding="utf-16"?><Properties><Property Name="ActualHeight" Value="1.0204081632653062" /><Property Name="ActualWidth" Value="9.1872000000000025" /><Property Name="DataContext" Value="Telerik.Windows.Controls.Sparklines.SparklineColumnDataPoint" /><Property Name="FlowDirection" Value="LeftToRight" /><Property Name="Focusable" Value="True" /><Property Name="HorizontalAlignment" Value="Stretch" /><Property Name="IsFocused" Value="False" /><Property Name="IsVisible" Value="True" /><Property Name="Language" Value="en-us" /><Property Name="Margin" Value="0,0,0,0" /><Property Name="MaxHeight" Value="Infinity" /><Property Name="MaxWidth" Value="Infinity" /><Property Name="MinHeight" Value="0" /><Property Name="MinWidth" Value="0" /><Property Name="Opacity" Value="1" /><Property Name="Tag" /><Property Name="VerticalAlignment" Value="Stretch" /><Property Name="Visibility" Value="Visible" /><Property Name="Background" /><Property Name="BorderBrush" /><Property Name="BorderThickness" Value="0,0,0,0" /><Property Name="FontFamily" Value="Segoe UI" /><Property Name="FontSize" Value="12" /><Property Name="FontStyle" Value="Normal" /><Property Name="FontWeight" Value="Normal" /><Property Name="Foreground" Value="#FF000000" /><Property Name="HorizontalContentAlignment" Value="Left" /><Property Name="IsTabStop" Value="True" /><Property Name="Padding" Value="0,0,0,0" /><Property Name="TabIndex" Value="2147483647" /><Property Name="VerticalContentAlignment" Value="Top" /><Property Name="Fill" Value="#FF5A6378" /></Properties>

RobGallo avatar Oct 17 '22 15:10 RobGallo

This issue has been marked as ready for team triage; we will triage it in our weekly review and update the issue. Thank you for contributing to Accessibility Insights!

ghost avatar Oct 17 '22 15:10 ghost

In today's triage discussion, we agreed to update the Condition of the BoundingRectangleSizeReasonable rule to omit WPF controls if their ItemStatus property includes the text <Property Name="DataContext" Value="Telerik.Windows.Controls.Sparklines.SparklineColumnDataPoint" />

DaveTryon avatar Oct 24 '22 22:10 DaveTryon

@DaveTryon @asksep Mind if I work in this issue?

marcelwgn avatar Oct 25 '22 06:10 marcelwgn

@chingucoding, You're welcome to work on this issue :)

RobGallo avatar Oct 25 '22 14:10 RobGallo

This is fixed but we need to keep the bug in the resolved state until we actually release the updated package

DaveTryon avatar Nov 08 '22 03:11 DaveTryon

@dilyantraykov, this has been fixed in Axe.Windows 2.1.0, released today. Please close out at your convenience. Thanks!

DaveTryon avatar Nov 15 '22 23:11 DaveTryon

The team requires additional author feedback; please review their replies and update this issue accordingly. Thank you for contributing to Accessibility Insights!

ghost avatar Nov 15 '22 23:11 ghost

This issue has been automatically marked as stale because it is marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment. Thank you for contributing to Accessibility Insights!

ghost avatar Nov 20 '22 01:11 ghost

Hello team,

Please excuse me for the late response and thank you for the effort in creating a fix.

Although this works in our particular scenario, there are other elements that also exhibit such errors which have a different ItemStatus code. I assume that other vendors may also have such issues with similar elements but their ItemStatus values will differ.

Would it be possible to expose some property or other API to mark certain elements to be ignored for checks on a particular rule?

dilyantraykov avatar Nov 30 '22 14:11 dilyantraykov

@dilyantraykov, I just saw your request. Adding an API is probably a non-starter. The best way to handle these would be to create a new issue for each class that would potentially fall into this category, then we'll need to evaluate them on a case-by-case basis.

DaveTryon avatar Apr 26 '23 03:04 DaveTryon