This is just one of those things that happens sometimes.
In this case, when navigating by cell using JAWS in FF for example, JAWS is first reading the cell header association including its column and row header text, then it reads the content which is a checkbox that includes the same label text. This is why it sounds like a duplication.
If you just use the up/down arrow keys instead to navigate by line, it will just read it once since JAWS isn’t also trying to track and convey the cell association at the same time.
Sometimes you will get double announcement too when you include an explicit label on a widget using aria-label, and also include a title attribute for sighted mouse users, both of which convey the same information. Since aria-label sets the Name property and the title attribute sets the Description property, both are sometimes announced when the widget receives focus.
From: Michiel Bijl [mailto:michiel@agosto.nl]
Sent: Tuesday, November 24, 2015 3:16 PM
To: Léonie Watson <lwatson@paciellogroup.com>; Matt King <a11ythinker@gmail.com>; Bryan Garaventa <bryan.garaventa@ssbbartgroup.com>; mzehe@mozilla.com
Cc: ARIA Working Group <public-aria@w3.org>; Protocols and Formats Working Group <public-pfwg@w3.org>
Subject: Does double announced content bother screen reader users?
Hi Léonie, Matt, Bryan, Marco, and PF/ARIA WG members,
There was a discussion on a11ySlackers about how to properly label form inputs inside of a table. In this example<http://dir.agosto.nl/accessibility/table.html> [1] there is a table with cats. There is a column for their name, softness, cuteness, and one with a checkbox so you can select the cat to give him or her snacks. In the example I’ve labelled all checkboxes with first their column header (Give snacks to) and then their row header (their name; e.g. Lara). This should make it clear what that checkbox does. Problem is that if you use tables mode to navigate and you land on the checkbox; you header either—depending on which direction you navigate—the column or row header twice.
My question is if this bothers any of you? Because it seems like a valid way to add much needed information to such a setup.
—Michiel
[1] http://dir.agosto.nl/accessibility/table.html