It seems that OS VoiceOver is ignoring table semantics when display:block is applied. The only way I’ve come up with to deal with this issue is dispense with the table headers and label the data inline.
See the following example using a mobile screensize.
See the bug report at https://bugs.webkit.org/show_bug.cgi?id=141524.
A colleague also discovered that this issue is also occurring with ordered and unordered lists using list-style-type:none. See https://bugs.webkit.org/show_bug.cgi?id=170179
It appears that Apple is enforcing parity between visual and semantic associations which I think is great.