Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#12097 closed Bug (fixed)

AVT: JAWS not reading number of list options correctly in colours list box

Reported by: Satya Minnekanti Owned by: Marek Lewandowski
Priority: Normal Milestone: CKEditor 4.4.5
Component: General Version: 3.6.3
Keywords: IBM Cc: Irina

Description

To reproduce the defect:

  1. with JAWS on, open any sample on ck editor nightly build
  1. Navigate to Text color / Background Color button menu and press Enter or Down arrow key

Expected Result: Color options list box opens and JAWS reads Automatic 1 of 40

Actual Result: Color options list box opens but JAWS reads Automatic 1 of 1 which is wrong and gives wrong info for JAWS user that there is only one option

Navigate through all color options in the colors list box

Expected Result: JAWS reads each Color option name and then says 1 of 40 2 of 40 and so on

Actual Result: JAWS reads each color option name but it says 1 of 1 which is wrong and gives info for JAWS user that there is only one option

Tested with FF29 & JAWS15

Change History (9)

comment:1 Changed 4 years ago by Marek Lewandowski

Status: newconfirmed

It seems that JAWS haves issues if options are in diffrent TD elements, which is the case with our colors.

You can see it in following example:

<div class="list" role="lisbox" aria-label="super list">
	<table>
		<tbody>
			<tr>
				<td>
					<a tabindex="0" role="option" aria-label="red">red</a>
				</td>
				<td>
					<a tabindex="0" role="option" aria-label="blue">blue</a>
					<a tabindex="0" role="option" aria-label="white">white</a>
				</td>
			</tr>
		</tbody>
	</table>
</div>

comment:2 Changed 4 years ago by Jakub Ś

Version: 3.6.3

Problem can be reproduced from CKEditor 3.6.3 rev. [7443].

comment:3 in reply to:  2 Changed 4 years ago by Marek Lewandowski

Replying to j.swiderski:

Problem can be reproduced from CKEditor 3.6.3 rev. [7443].

You're right, these attributes are needed when we have table-based layout there.

I can see two options here:

  1. We can simply revert changes pointed by Kuba.
  2. We can restructure markup for options in picker (avoid using tables).

I've pushed a branch with reverted attributes to t/12097.

comment:4 Changed 4 years ago by Marek Lewandowski

Owner: set to Marek Lewandowski
Status: confirmedreview

These attributes were too hastily removed from colorbox in #8407.

In theory they should not be needed, but JAWS does not list [role=option] elements correctly when they are nested within table (as shown in sample few comments above), therefore we need fallback to manualy pointing sizes to screen readers.

comment:5 Changed 4 years ago by Piotrek Koszuliński

The change [7443] has not been fully reverted. Only the first and last options have aria-posinset attributes. Was there any reason for reverting that change partially? Does JAWS handle this list with just two attributes?

comment:6 Changed 4 years ago by Piotrek Koszuliński

@m.lewandowski: ping?

comment:7 Changed 4 years ago by Marek Lewandowski

This part was missing, I've added that to branch t/12097.

While testing this solution I found related issue, aria-setsize was lower by one in case when:

  • config.colorButton_enableMore is undefined (default case, value is treated as true).
  • colordialog plugin is not loaded.

I've fixed with git:99699fc. If you think that this is not related to the ticket, please remove this commit.

comment:8 Changed 4 years ago by Piotrek Koszuliński

Milestone: CKEditor 4.4.5
Resolution: fixed
Status: reviewclosed

Fixed on master with git:f7198e0.

I noticed that checking colorButton_enableMore !== false would make more sense, but I left your version since so far we were comparing it to undefined, just like you did.

comment:9 Changed 4 years ago by Piotrek Koszuliński

After a while I changed my mind, because of course colorButton_enableMore is documented to be a boolean so using e.g. 0 is incorrect.

Fix in git:7f82350.

Note: See TracTickets for help on using tickets.
© 2003 – 2017 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy