Candidate Set:
The test logic is any element with a role="img" that does not match the following criteria would be listed as a failure:
Is an SVG element with a descendant title element
Has an aria-label attribute with a length greater than 2
Has a aria-labelledby attribute
The fix is:
When the element being fixed corresponds to a failed role="img" element and the user enters an empty value the role="img" should be removed from the element and role="presentation" should be added.
For failed role="img" elements the fix should be that an aria-label attribute is added to the element with the value the user entered in the text field.
Here we have a div with a role of img with no label (should be flagged)
----- xxx ------ xxx -----
Here we have an svg with a role of img with no descendant title element (should be flagged)
**** We ALSO flag this same element for the SVG test, which seems wrong.
Here we have a div with a role of img with no label containing img elements inside (should be flagged)
**** We also flag each of the child img elements here
Here we have a div with a role of img with no label containing an img and svg elements inside (should be flagged)
**** We also flag each of the child img and svg elements here
Here we have a div with a role of img with an aria-label (should not be flagged)
x ------------ x
Here we have a div with a role of img with an aria-labelledby (should not be flagged)
-------------
Here we have an svg with a role of img with a descendant title element (should not be flagged)
Here we have a div with a role of img with an aria-label containing img elements inside (should not be flagged)
**** We do still flag each of the child img elements here
Here we have a div with a role of img with an aria-label containing an img and svg elements inside (should not be flagged)
**** We also flag each of the child img and svg elements here