Reported by mdcurran on 2013-12-03 04:21
Currently speech.speakTextInfo updates its speech caches on the TextInfo's obj when it is called, even inside a current sayAll. This causes an issue where if sayAll is reading down a document and enters a field such as a table, the speech cache is updated for this situation, even though NVDA may not have actually spoken that text yet. Therefore if you then interrupt sayAll by read current line, or something, NVDA will announce something like "out of table" even though it had never actually got up to speaking entering of the table.
Saving of pseech caching to the TextInfo's obj must be delaied until an index is received from the synth for that particular text. We may wish to abstract this with some kind of speakTextInfoState object which can be passed into speakTextInfo and mutated. Blocking #3675