# NVDA 新版資訊

## 2025.3

此版本包含對遠端存取、SAPI5 語音、點字及附加元件商店的多項改進。

附加元件商店中的附加元件，現在可依最低/最新通過測試的 NVDA 版本及安裝日期排序。

遠端存取功能有多項小型修正與改進，包括新增了傳送 `control+alt+delete` 的指令，以及記憶最近的連線設定。 同時還修正了連線與音訊問題。

點字功能有所改進，包含了更智慧的換行、跨語言變更時穩定的表格選取，以及 Dot Pad 可選用的 USB 自動偵測。

SAPI5 語音有多項錯誤修正，包括修正了過度消除開頭靜音、凍結問題，以及音訊間斷的問題。

eSpeak NG 和 Unicode CLDR 已更新。 已新增白俄羅斯文和波士尼亞文的表情符號在地化資料。

### 新功能

- 附加元件商店：
  - 附加元件可以依最低和最新通過測試的 NVDA 版本，以及安裝日期排序。(#18440, #18560, @nvdaes, @CyrilleB79)
  - 現在，可用的附加元件索引標籤中附加元件的詳細資訊區域，也會顯示最低和最新通過測試的版本。(#18440, @nvdaes)
  - 現在，外部附加元件的詳細資訊區域也會顯示安裝日期。(#18560, @CyrilleB79)
- 新增了一個未指派指令，可在透過 NVDA 遠端存取控制另一台電腦時，傳送 `control+alt+delete`。(#18105)
- 新增了一個設定，可在控制本機電腦時自動將遠端存取靜音。(#18630)

### 變更

- 元件更新：
  - 已將 eSpeak NG 更新到 commit `3b8ef3d`。 法西文/波斯文方面有所改進。(#18342, #18633, @codeofdusk)
  - 將 Unicode CLDR 更新到 47.0。 已新增白俄羅斯文和波士尼亞文的表情符號在地化資料。(#18581)
- 點字：
  - 當點字換行啟用時，若下一個字元是空白，則會使用所有點字格。(#18016, @nvdaes)
  - 變更 NVDA 語言時，不再會將點字表重設為自動。(#18538, @LeonarddeR)
  - NVDA 不再將土耳其文一級點字視為土耳其文八點電腦點字。(#18758, @OzancanKaratas)
  - Dot Pad 點字顯示器驅動程式現在支援自動偵測透過 USB 連線的裝置。 請注意，由於該裝置使用通用的 USB 識別碼，此功能預設為停用，但可在點字設定中啟用。(#18444, @bramd)
- 在 Microsoft Excel 中，當選取範圍涵蓋多個儲存格時，按下 `tab` 或 `enter` 鍵移動作用儲存格，現在會讀出新的作用儲存格，而非整個選取範圍。(#6959, @CyrilleB79)
- 在 Windows 10 1607 版及更新版本的終端機程式中，變更文字的計算現在會於 NVDA 內部執行，而非透過外部處理序，這可能會改善效能和可靠性。(#18480, @codeofdusk)
- NVDA 遠端存取連線對話框現在會記住手動連線時最近使用的連線模式、伺服器類型及本機連接埠。(#18512, #18701)

### 錯誤修正

- 語音：
  - 修正了使用某些語音時，過度消除開頭靜音會修剪掉部分語音的問題。(#18003, @gexgd0419)
  - 修正了使用 SAPI5 語音時，NVDA 有時會完全凍結的問題。(#18298, @gexgd0419)
  - 修正了使用 SAPI5 Eloquence 語音時，NVDA 無法啟動並會退回使用 OneCore 語音的問題。(#18301, @gexgd0419)
  - 修正了啟用 WASAPI 和加快語速時，使用某些 SAPI5 語音會出現音訊間斷的問題。(#17967, @gexgd0419)
- 遠端存取：
  - 修正了當受控電腦未啟用任何音訊輸出裝置時，透過 NVDA 遠端存取傳送的語音會無法運作的錯誤。(#18544)
  - 修正了若在連線至伺服器期間工作階段被中斷，會導致 NVDA 遠端存取停止運作的錯誤。(#18476)
- 修正了 Microsoft Word 文件中同一行有多個數學運算式時的錯誤：第一個運算式之後的所有內容皆未被讀出或以點字輸出。(#18386, @NSoiffer)
- 修正了 Java 應用程式中對滑鼠文字單位「段落」的支援。(#18231, @hwf1324)
- 修正了醒目提示無法在 Outlook 聯絡人自動完成清單中運作的問題。(#18483, @Nerlant)
- 建立後立即啟動的可攜式版，現在會正確使用其自身的組態，而非其他組態。(#18442, @CyrilleB79)

### 針對開發人員的變更

請參閱 開發人員指南 以了解 NVDA 的 API 廢除與移除過程。

- 元件更新：
  - 已將 pyright 更新至 1.1.403。(#18424)
  - 已將 Ruff 更新到 0.12.7。(#18424, #18609)
  - 已更新 Comtypes 至 1.4.11。(#18611)
  - 已將 py2exe 更新至 0.14.0.0。(#18611)
  - 將 markdown 更新到 3.8.2。(#18638)
  - 將 detours 更新至 `9764cebcb1a75940e68fa83d6730ffaf0f669401`。(#18447, @LeonarddeR)
- 對於 `IAccessible` 物件，`flowsFrom` 和 `flowsTo` 屬性現在會對 MSAA (非 IA2) 物件引發 `NotImplementedError`。(#18416, @LeonarddeR)
- `nvda_dmp` 公用程式已被移除。(#18480, @codeofdusk)
- `comInterfaces_sconscript` 已更新，使 `comInterfaces` 中產生的檔案能更好地與 IDE 搭配運作。(#17608, @gexgd0419)
- NVDA 現在會在 GUI 初始化時設定 `wx.lib.agw.persist.PersistenceManager`。(#18601)

#### 棄用

- `synthDrivers.sapi5` 中的以下符號已被棄用，且無替代方案：(#18300, @gexgd0419)
  - `LP_c_ubyte`
  - `LP_c_ulong`
  - `LP__ULARGE_INTEGER`
  - `SynthDriver.isSpeaking`
- `easeOfAccess.RegistryKey` 和 `config.RegistryKey` 已被棄用，請改用 `config.registry.RegistryKey`。(#18608)
- 從 `md2html` 匯入 `DEFAULT_EXTENSIONS` 的用法已被棄用。 不建議從 `md2html` 匯入。(#18638)

## 2025.2

此版本包含了在 Windows 11、瀏覽模式及 Microsoft Word 方面的改進。

在瀏覽模式中，新增了第 7 到 9 級標題的快速導覽鍵。 元素清單和尋找對話框不再會導致應用程式組態設定檔被停用。 在 Microsoft Edge 中，「載入完成」等通知不再會中斷全部朗讀。

在 Microsoft Word 中，當使用快捷鍵切換至「整頁模式」或「大綱模式」時，現在會報讀新的檢視模式。 當 UIA 啟用時，若游標位於表格儲存格內，點字輸出中不再會顯示多餘的表格結尾標記。

在 Windows 11 上，NVDA 不再會於瀏覽表情符號面板項目時，將其報讀兩次。 Windows 11 24H2 版本中開始功能表的效能和可靠性已獲改善。 在 Windows 11 24H2 及更新版本上，使用 `Windows+方向鍵` 調整視窗大小時，將會報讀視窗狀態。 同時也新增了對 Windows 11「語音存取」的支援。

新增了選項，可用於讀出正在閱讀的文字語言，以及在目前語音合成器不支援該語言時進行提示。

已新增對 NLS eReader Zoomax 點字顯示器的支援。 已新增對 Humanware Monarch 上「指向並點擊」動作的游標定位支援。

LibLouis 已更新，新增了聖經希伯來文、俄文六點電腦點字及泰文二級點字的點字表。 eSpeak-NG 已更新，新增了對阿羅馬尼亞文、克里米亞韃靼文、蒙古語及普什圖文的支援。

此外還有許多其他修正和改進，包括滑鼠與觸控互動、Windows 11 記事本，以及 Google Chrome。

### 新功能

- NVDA 現在可以讀出正在閱讀的文字語言(#17664, @nvdaes)：
  - 新增了以下選項：
    - 讀出正在閱讀的文字語言。
    - 讀出正在閱讀的文字語言是否不受支援。
  - 新增了一個未指派指令，用於讀出游標所在位置文字的語言。
- 在 Microsoft Word 中，當使用快捷鍵切換至整頁模式(`control+alt+p`) 或大綱模式(`control+alt+o`) 時，現在會讀出新的檢視模式。(#18091, @CyrilleB79)
- 現在可以透過 Humanware Monarch 多行點字裝置上的「指向並點擊」動作，將游標定位至任何點字格。(#18248)
- 在 Windows 11 2024 更新版、Server 2025 及更新版本中，當按下 `windows+方向鍵` 改變視窗位置時，NVDA 會報讀前景視窗的狀態，例如還原、最大化和貼齊。(#17841, #18175, @josephsl)
- 新增了未指派指令，可用於開啟以下類別的 NVDA 設定對話框：視覺、Windows OCR、附加元件商店及進階。(#18313, @CyrilleB79)
- 推出了對 Windows 11 語音存取的支援，包括可隨時讀出聽寫的文字和麥克風狀態(需要安裝 NVDA)。(#16862, #17384, @josephsl)
- 已新增對 NLS eReader Zoomax 點字顯示器的支援。(#15863, @florin-trutiu)
- 在語音設定中新增了允許使用者針對 SAPI5 語音停用現代音訊輸出系統 (WASAPI) 的核取方塊。(#18309, @gexgd0419)

### 變更

- 元件更新：
  - 將 LibLouis 點字轉譯表更新為 3.34.0。 (#18227, @LeonarddeR，@codeofdusk)
    - 新增了聖經希伯來文的點字表，以及俄文六點電腦點字和泰文二級點字表。
    - 立陶宛文點字表有大幅更新。
    - 匈牙利文、荷蘭文、挪威文及土耳其文的點字表有小幅改善。
  - 已將 eSpeak NG 更新到 commit `e93d3a9`。(#17896)
    - 新增了阿羅馬尼亞文、克里米亞韃靼文、蒙古語及普什圖文。
- 在瀏覽模式中，現在可以使用數字鍵 1 到 9 (先前為 1 到 6) 來導覽至對應層級的標題。(#18014, @CyrilleB79)
- 開啟元素清單或尋找對話框時，NVDA 不再會變更組態設定檔，此行為與其他 NVDA 對話框一致。(#18160, @nvdaes)
- 在 Microsoft Edge 中，當讀出載入完成等通知時，NVDA 不再會取消全部朗讀。(#17986, @josephsl)
- 當作為被控端電腦連線 NVDA 遠端存取時，NVDA 將在更新前發出警告。(#18455)

### 錯誤修正

- 在 WinUI 3 應用程式中 (包括 Microsoft Copilot 及部分 Windows 11 檔案總管)，使用滑鼠和觸控互動時，NVDA 不再會無法讀出控制項。(#17407, #17771, @josephsl)
- 修正了在某些罕見情況下，NVDA 播放音效可能導致非預期錯誤的問題。(#17918, @LeonarddeR)
- 在 Microsoft Word 中，當 UIA 啟用時，若游標位於表格儲存格內，點字輸出中不再會顯示多餘的表格結尾標記。(#15828, @LeonarddeR)
- 在 Geekbench 6.4 中，NVDA 現在可以再次讀取功能區及其中的選項。(#17892, @mzanm)
- 在 Google Chrome / Microsoft Edge 中檢視時，NVDA 不再會無法讀取 Microsoft Loop 中的核取清單項目。(#18130)
- NVDA 現在會在 Microsoft SQL Server Management Studio 21 中遵循其行號報讀設定。(#18176, @LeonarddeR)
- 在 Windows 11 記事本中，當「讀出輸入字元」設定為「僅限於編輯區」時，NVDA 會讀出在「移至行」對話框的「行號」欄位中輸入的值。(#18208, @josephsl)
- 在 Windows 11 24H2 的「開始」功能表中：(#17951, @jcsteh)
  - 進入開始功能表後不久，NVDA 不再會偶爾錯誤地切換至瀏覽模式。
  - 在瀏覽模式中導覽時，NVDA 不再會偶爾發生凍結。
  - 現在能可靠地讀出搜尋建議。
- 在 Windows 11 中，NVDA 不再會於瀏覽表情符號面板項目時，將其讀出兩次。(#18236, @josephsl)
- 在 Microsoft Excel 的儲存格中輸入時，點字顯示器現在會正確更新，以顯示新的內容。(#18391)
- 使用 NVDA 遠端存取時，來自遠端電腦上使用者帳戶控制畫面的語音，現在能可靠地運作。(#18101，@jcsteh)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 元件更新：
  - 已將 SCons 更新至 4.9.1。(#18069, @dpy013)
  - NSIS 已更新至 3.11 版本。(#18027, @dpy013)
  - 已將 Ruff 更新到 0.11.12。 (#17671)
  - 已將 pre-commit 更新到 4.2.0. (#17671)
  - 已將 pyright 更新至 1.1.401。 (#17671)
- NVDA 現在使用 uv 作為 Python 套件/專案管理器。(#17935, @LeonarddeR)
  - 從原始碼儲存庫執行 scons 時，若 uv 尚不可用，它會自動建議一種安裝 uv 的策略。
- 新增了「externalPythonDependencies」作為一個額外的偵錯記錄類別。當啟用此類別時，來自外部相依套件 (例如 comtypes) 的偵錯記錄訊息將會記錄到 NVDA 的事件記錄檔中。(#18067, @LeonarddeR)
- 數個用於讀出所讀文字語言的新增項目。(#17685, @nvdaes)
  - `synthDriverHandler` 的 `synthDriver` 類別包含 `languageIsSupported` 函式，用於檢查 `lang` 參數所指示的語言是否受該語音合成器支援。
  - 新增了 `languageHandling` 模組，用於在語音序列中讀出語言。
  - `speech.commands` 的 `LangChangeCommand` 包含靜態方法，用於判斷 NVDA 是否應取得閱讀的文字語言，以及是否應切換語音合成器的語音。
- `brailleTables` 模組現在是一個套件。 數個內建的點字表定義已移至該套件中的 `__tables` 模組。(#18194, @LeonarddeR)
- Microsoft SQL Server Management Studio 現在使用 Visual Studio 應用程式模組，因為 SSMS 是基於 Visual Studio。(#18176, @LeonarddeR)
- 當呼叫 `winVersion.getWinVer` 時，NVDA 現在會報讀 Windows 發行版本的修訂號 (例如：10.0.26100.0)，並在啟動時將此資訊記錄下來。(#18266, @josephsl)

## 2025.1.2

這是一個用來修正錯誤的修補版本。

### 錯誤修正

- 某些 16.0.18226 版之前的 Microsoft Word 版本，現在開啟時不再當機。(#18280)

## 2025.1.1

這是一個用來修正錯誤的修補版本。

### 錯誤修正

- 修正了 NVDA 介面語言設定為韓文時無法開啟附加元件商店的問題。(#18250)

## 2025.1

此版本推出了「NVDA 遠端存取」功能，讓您可以透過一台執行 NVDA 的裝置，控制另一台同樣執行 NVDA 的遠端電腦。

語音方面有許多改善，特別是提升了 SAPI 4、SAPI 5 及 OneCore 語音的回應速度。 SAPI 5 現在支援加快語速與自動語言切換。 SAPI 4 語音現在支援自動音量調整、去除開頭靜音，以及保持音訊裝置喚醒。

附加元件商店的自動更新系統已獲改善，讓您可以選取自動更新通道，並在背景中執行自動更新。

新增了手動更新 OCR 結果，以及切換是否定期更新 OCR 結果的指令。

Chrome 和 Edge 現在支援原生選取。

對 Microsoft Office 和 LibreOffice 的支援已改善，尤其是會讀出更多快捷鍵。

現在可以根據 NVDA 的語言來設定預設的輸入和輸出點字表。 新增對 Dot Inc. 的 Dot Pad 觸覺圖形裝置的原生支援，可作為多行點字顯示器使用。 點字顯示器方面亦有其他小修正，尤其是在連線能力上。

LibLouis 點字轉譯表、eSpeak-NG 及 Unicode CLDR 均已更新。 新增了科普特文、精簡楔形文字，以及葡萄牙文六點電腦點字的點字表。

### 重要說明

- 此版本會破壞與現有附加元件的相容性。

### 安全性修正

請依照 NVDA 的安全性政策，負責任地揭露安全問題。

- 防止在系統鎖定時，於點字顯示器上顯示潛在敏感資訊。 (GHSA-8f8q-2jc3-6rf4)
- 防止安裝程式從其目錄載入非預期的 DLL。 (GHSA-qf5h-qw92-rx2f)

### 新功能

- 附加元件商店：
  - 自動更新 (#3208)：
    - 現在可以修改附加元件的自動更新通道。
      - 已安裝附加元件的自動更新通道，可透過「更新通道」子功能表來選取。
      - 預設的自動更新通道，可在 NVDA 設定的附加元件商店中設定。
    - 自動更新現在可以在背景中進行。
      - 此功能可在 NVDA 設定的「附加元件商店」中，將「自動更新」選項變更為「自動執行更新」來啟用。
    - 自動更新現在能將不相容的附加元件，更新為另一個較新的不相容版本。
      - 此功能可在 NVDA 設定的附加元件商店中啟用。
  - 新增了取消附加元件安裝的操作。 (#15578, @hwf1324)
  - 新增當附加元件下載/安裝失敗時重新嘗試的操作。 (#17090, @hwf1324)
  - 附加元件清單可以依欄位排序，包括「發布日期」欄位，並支援遞增與遞減順序。(#15277, #16681, @nvdaes)
- 語音：
  - 使用 Microsoft Speech API version 5 (SAPI5) 及 Microsoft Speech Platform 語音時，現在支援自動語言切換。(#17146, @gexgd0419)
  - 使用 Microsoft Speech API version 5 (SAPI5) 及 Microsoft Speech Platform 語音時，現在支援加快語速，最高可達 6 倍速度。(#17606, @gexgd0419)
- 網頁瀏覽器：
  - NVDA 瀏覽模式的原生選取模式 (NVDA+shift+f10) 現在可在 Google Chrome、Edge 以及其他基於 Chromium 134 或更新版本的應用程式中使用。(#17838)
  - 在 Mozilla Firefox 中，當造訪包含文字片段的網址時，NVDA 會報讀醒目提示的文字。(#16910, @jcsteh)
  - NVDA 現在可以報讀連結目標是否指向目前頁面。(#141, @LeonarddeR, @nvdaes)
- Microsoft Office：
  - 在 PowerPoint 文字方塊中編輯時，現在可以使用 alt+向上鍵/alt+向下鍵 逐句移動。(#17015, @LeonarddeR)
  - 在 Word 中，當使用 Word 指令 (f8 或 shift+f8) 擴大或縮小選取範圍時，現在會報讀更新的選取範圍。(#3293, @CyrilleB79)
  - 在 Word 16.0.18226 及更新版本中，或使用 Word 物件模型時，NVDA 現在會透過語音和點字報讀標題是否已摺疊。(#17499)
  - 在 Word 中搭配 UIA 使用時，當使用原生的擴充表格導覽指令 (alt+home、alt+end、alt+pageUp 和 alt+pageDown) 時，NVDA 現在會報讀插入點的移動。(#17867, @CyrilleB79)
  - 在 Word 中，當使用讀出焦點指令時，如果文件版面配置資訊可用，並且讀出物件說明已啟用，NVDA 將會報讀文件版面配置。(#15088, @nvdaes)
  - 在 Word 和 Outlook 中，現在會讀出更多快速鍵的執行結果：
    - 字型格式快速鍵 (#10271, @CyrilleB79)
    - 摺疊和展開標題 (#17545, @CyrilleB79)
- LibreOffice：
  - 在 Writer 中使用對應的鍵盤快速鍵增大或縮小字型大小時，NVDA 會讀出新的字型大小。(#6915, @michaelweghorn)
  - 在 Writer 25.2 或更新版本中，使用對應的鍵盤快速鍵套用「內文」或標題段落樣式時，NVDA 會讀出新的段落樣式。(#6915, @michaelweghorn)
  - 在 Writer 中使用對應的鍵盤快速鍵切換雙底線時，NVDA 會讀出新的狀態(「雙底線 開」/「雙底線 關」)。(#6915, @michaelweghorn)
  - NVDA 現在可以在 LibreOffice 25.8 及更新版本中讀出首行縮排。(#13052, @michaelweghorn)
- OCR：
  - 在辨識結果中，可按 `NVDA+f5` 手動更新已辨識的內容。(#17715, @CyrilleB79)
  - 新增了一個未指派手勢，用於切換定期更新 Windows OCR 結果。(#16897)
- 以「NVDA Remote」附加元件為基礎的遠端存取功能，現已整合至 NVDA。(#4390, @ctoth, @tspivey, @daiverd, NVDA Remote 貢獻者和贊助者)
- 現在可以指定鏡像網址，供 NVDA 更新和附加元件商店使用。(#14974, #17151, #17310, @christopherpross)
- 已新增對 PDF 中數學內容的支援。(#9288, @NSoiffer)
  - 此功能適用於帶有相關 MathML 的公式，例如某些由較新版本 TeX/LaTeX 產生的檔案。
  - 目前此功能僅支援 Foxit Reader 及 Foxit Editor。
- NVDA 現在可以設定，在透過點字顯示器導覽控制鍵導覽時，讀出目前的行或段落。(#17053, @nvdaes)
- NVDA 現在能夠讀初因按下 `alt+向上鍵` 或 `alt+向下鍵` 手勢所造成的插入點變更，例如在 Visual Studio Code 中。(#17652, @LeonarddeR)
- 新增了將檢閱游標移到目前選取文字的第一個字元與最後一個字元的指令，並分別指派給 `NVDA+alt+home` 和 `NVDA+alt+end`。(#17299, @nvdaes)
- 新增了一項一般設定，可在讀出全部或使用點字閱讀時，避免螢幕顯示關閉。 此選項預設為啟用，但可能導致耗電量增加。(#17649, @LeonarddeR)
- NVDA 現已被翻譯為波士尼亞文。(#17953)
- 在 Adobe Acrobat 中，NVDA 現在可以報讀並與 PDF 文件中的數學方程式互動，這些文件是由 Microsoft Word 的較新版本所產生的。(#18056)

### 變更

- 元件更新：
  - 將 LibLouis 點字轉譯表更新為 3.33.0。 (#17469, @LeonarddeR，@codeofdusk)
    - 新增了科普特文、精簡楔形文字，以及葡萄牙文六點電腦點字的點字表。
  - CLDR 已更新至 46.0 版本。(#17484, @OzancanKaratas)
  - 已將 eSpeak NG 更新到 1.52.0。 (#17056)
- NVDA 介面變更：
  - NVDA 安裝程式啟動時不再播放提示音。 (#14068)
  - 「讀出連結目標」、「字元格式資訊」及「讀出選取內容」等對話框，現在加入了「關閉」和「複製」按鈕，以方便使用者操作。(#17018, @XLTechie)
  - 結束對話框現在允許您同時停用附加元件並啟用偵錯記錄來重新啟動 NVDA。(#11538, @CyrilleB79)
  - 已移除停用 WASAPI 進行音訊輸出的選項。(#16080)
  - 瀏覽模式設定「自動將系統焦點設至可設定焦點的元素」已被移除，此行為現已停用。(#17598)
  - NVDA 現在只會在更新至一個其附加元件 API 與目前版本不相容的新版本時，才會針對附加元件不相容的問題發出警告。(#17071, #17506)
  - 「貢獻者」檔案已從 NVDA 選單中移除。(#16922)
  - NVDA 授權合約現在以 HTML 格式呈現，以提升可讀性。(#17600)
  - 新增了最常用命令列選項的縮寫版本：-d 代表 --disable-addons，-n 代表 --lang。 命令列參數的前置詞比對(例如使用 --di 代表 --disable-addons)現已不再支援。(#11644, @CyrilleB79)
  - COM 註冊修復工具的改進： (#12355, @XLTechie)
    - 啟動時會提供更易於使用者理解的目的解說，取代了先前的警告。(#12351)
    - 初始視窗現在可以使用 `escape` 或 `alt+f4` 鍵關閉。(#10799)
    - 在嘗試重新註冊 COM 時，若發生罕見的 Windows 錯誤，現在會向使用者顯示一則包含錯誤訊息的提示。
- 語音：
  - Microsoft Speech API version 5 和 Microsoft Speech Platform 語音現在使用 WASAPI 進行音訊輸出，這可能會提升這些語音的回應速度。(#13284, @gexgd0419)
  - 使用 OneCore 語音、SAPI5 語音及某些第三方語音附加元件時，現在會移除語音開頭的靜音，以提升其回應速度。(#17614, @gexgd0419)
  - Microsoft Speech API version 4 語音現在使用 WASAPI 進行音訊輸出，使其能夠支援音量調整、移除開頭靜音，以及保持音訊裝置喚醒等功能。 如果此功能不適用於您的 SAPI 4 語音，您可以到進階設定中關閉 使用 WASAPI 作為 SAPI 4 的音訊輸出。(#17718, #17801, @gexgd0419)
  - Unicode 正規化現在預設啟用，用於語音輸出。(#17017, @LeonarddeR).。
    - 您仍然可以在 NVDA 設定對話框的「語音」類別中停用此功能。
- 「讀出輸入字元」與「讀出輸入單字」這兩項鍵盤設定，現在提供三個選項：關、僅限於編輯區，以及總是。(#17505, @Cary-rowen)
  - 預設情況下，「讀出輸入字元」現在設定為「僅限於編輯區」。
- 現在可根據 NVDA 的語言來設定預設的輸入和輸出點字表。(#17306, #16390, #290, @nvdaes)

### 錯誤修正

- 語音：
  - 修正了使用某些 SAPI5 語音合成器時，連續閱讀 (讀出全部) 功能會在第一句結尾停止的問題。(#16691, @gexgd0419)
  - 透過循環切換設定在 SAPI5 和 SAPI4 語音合成器間切換語音時，語音參數(如語速和音量不會再重設回預設值。(#17693, #2320, @gexgd0419)
  - 修正了某些 SAPI4 語音 (例如 IBM TTS 中文) 無法載入的問題。(#17726, @gexgd0419)
- 點字：
  - 原生支援 Dot Inc. 的 Dot Pad 觸覺圖形裝置，可作為多行點字顯示器使用。(#17007)
  - 使用 Seika Notetaker 時，輸入手勢對話框中，現在能正確顯示空格鍵及空格鍵與點字組合的手勢。(#17047, @school510587)
  - 在未連接點字顯示器時，若使用顯示語音輸出點字模式，NVDA 現在應該不會再播放錯誤音效或在記錄檔中產生大量訊息。(#17092, @Emil-18)
  - 當「標準 HID 點字顯示器」驅動程式被明確選為點字顯示器驅動程式，並且開啟點字顯示器清單時，NVDA 現在會正確識別 HID 驅動程式為已選取的驅動程式，而非顯示未選取任何驅動程式。(#17537, @LeonarddeR)
  - Humanware Brailliant 驅動程式現在能更可靠地選取正確的連線端點，從而提升連線穩定性並減少錯誤。(#17537, @LeonarddeR)
  - 在停用附加元件的情況下執行時，開發者 scratchpad 中的自訂點字表現在會被正確忽略。(#17565, @LeonarddeR)
  - 修正了某些 USB 點顯器無法被 NVDA 正確偵測的問題。(#18114, @christiancomaschi)
- Microsoft Office：
  - 在 Word、Outlook、Excel 及 PowerPoint 中使用舊版物件模型時，「報讀連結的目標網址」指令現在能如預期般運作。(#17292, #17362, #17435, @CyrilleB79)
  - 在 Excel 中，元素清單對話框 (NVDA+f7) 現在不再會於某些非英文系統上，無法列出註解或公式。(#11366, @CyrilleB79)
  - PowerPoint 的改進：
    - 當文字包含寬字元 (例如表情符號) 時，插入點報讀不再發生錯誤。(#17006 , @LeonarddeR)
    - 讀出字元位置現在更為準確 (例如按下 NVDA+delete 時)。(#9941, @LeonarddeR)
    - 當開始投影片放映，且瀏覽模式設定頁面載入時自動讀出全部內容為停用時，NVDA 不再啟動全文朗讀。(#17488, @LeonarddeR)
- LibreOffice：
  - 使用微軟拼音輸入法並開啟舊版相容模式時，Writer 等應用程式中 IME 快顯視窗顯示的狀態下輸入不再出現錯誤。 (#17198, @michaelweghorn)
  - 對話框中核取方塊的目前狀態(勾選/沒勾選)，現在也會透過點字顯示，而不僅限於語音。(#17218, @michaelweghorn)
- 數學：
  - 已修正部分網頁元素上數學內容的閱讀問題。 具體來說，是指位於 span 元素以及其他具有屬性 `role="math"` 的元素內部的 MathML。(#15058)
  - 僅由圖片和替代文字呈現，且沒有可用於互動導覽的 MathML 的數學方程式，現在會被視為一般圖片處理，而非沒有內容的數學內容，這讓使用者能透過 g 鍵跳至這些方程式，並能逐字元閱讀其替代文字。(#16007)
- 整合開發環境 (IDE)：
  - 在 Android Studio 或 IntelliJ Idea 的某些原始碼檔案中選取所有文字時，NVDA 不再當機。(#17418, @thgcode)
  - 在 Visual Studio Code 中，NVDA 不再將 `alt+向上鍵` 和 `alt+向下鍵` 手勢用於逐句導覽。(#17082, @LeonarddeR)
  - 在 Visual Studio Code 中，某些區段元素現在能被正確識別為可編輯控制項。(#17573, @Cary-rowen)
  - 在記事本及其他 UIA 文件，以及 Windows 11 上的 Notepad++ 文件中，若最後一行是空白行，則「點字下一行指令」會將游標移至最後一行。 在任何文件中，若游標位於最後一行，使用此指令時，游標會被移至行尾。(#17251, #17430, @nvdaes)
- 組態設定檔：
  - 當透過相關的組態設定檔啟動「讀出全部」時，點字功能不再發生異常。(#17163, @LeonarddeR)
  - 修正了即使某些設定的值與一般組態中的值相同，仍會將其明確儲存至作用中組態設定檔的問題。(#17157, @leonarddeR)
- 拼讀時，Unicode 正規化現在運作得更為恰當：
  - 讀出正規化字元後，NVDA 不再錯誤地將後續字元也讀為正規化。(#17286, @LeonarddeR)
  - 組合字元 (例如 é) 能被正確讀出。(#17295, @LeonarddeR)
- NVDA 現在能夠讀取 Thunderbird 搜尋結果頁面上的快顯子功能表項目。(#4708, @thgcode)
- COM 註冊修復工具在失敗時，不會再誤報為成功。(#12355, @XLTechie)
- 當 Windows 11 剪貼簿歷程記錄視窗中有項目存在，並關閉該視窗時，NVDA 不再讀出這些項目。(#17308, @josephsl)
- 如果在瀏覽模式訊息開啟的狀態下重新載入附加元件，NVDA 不再無法讀出後續的焦點移動。(#17323, @CyrilleB79)
- 當使用 Skype、Discord、Signal 及手機連結等應用程式進行語音通訊時，NVDA 的語音和音效音量不再降低。(#17349, @jcsteh)
- 若在擷取快照變數時發生錯誤，開啟 NVDA Python 主控台不再失敗。(#17391, @CyrilleB79)
- 在網頁瀏覽器中，可編輯文字控制項內的文字選取變更，現在不再偶爾發生無法讀出的情況。(#17501, @jcsteh)
- 當頁面內跳轉的連結指向與虛擬游標所在位置相同的物件時，NVDA 不再無法捲動至連結目標。(#17669, @nvdaes)
- 重新啟動檔案總管後，NVDA 焦點醒目提示視窗的圖示不會固定在工作列上。(#17696, @hwf1324)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 請注意：此版本與先前的附加元件 API 不相容。 附加元件需要重新測試，並更新其資訊清單。
- 元件更新：
  - 已將 Ruff 更新到 0.8.1。 (#17102, #17260, #17473)
  - 已將 Comtypes 更新到 1.4.6。 (#17061, @LeonarddeR)
  - 已將 wxPython 更新到 4.2.2。 (#17181, @dpy013)
  - 已將 SCons 更新到 4.8.1。 (#17254)
  - 已將 sphinx 更新到 8.1.2，sphinx-rtd-theme 更新到 3.0.1。 (#17284, @josephsl)
  - 已將 Robot Framework 更新到 7.1.1。 (#17329, @josephsl)
  - 已將 configobj 更新到 5.1.0 commit `8be5462`。 (#17328)
  - 已將 pre-commit 更新到 4.0.1. (#17260)
  - 已將 typing-extensions 更新到 4.12.2。 (#17438, @josephsl)
  - 已將 licensecheck 更新到 2024.3。 (#17440, @josephsl)
  - Markdown 已更新至 3.7 版本。(#17459, @dpy013)
  - 已將 nh3 更新到 0.2.19。 (#17465, @josephsl)
  - 已將 nuitka 更新到 2.5.4。 (#17458, @josephsl)
  - 已將 schedule 更新到 1.2.2。 (#17455, @josephsl)
  - 已將 requests 更新到 2.32.3。 (#17456, @josephsl)
- `ui.browseableMessage` 現在可以帶有選項呼叫，以呈現一個複製到剪貼簿的按鈕，及/或一個關閉視窗的按鈕。(#17018, @XLTechie)
- 新增了數個識別連結類型的方法 (#16994, @LeonarddeR, @nvdaes)
  - 一個新的 `utils.urlUtils` 模組，包含多個用於判斷連結類型的函式
  - `controlTypes.states.State` 中新增了 `INTERNAL_LINK` 狀態
  - `NVDAObject` 上新增了 `linkType` 屬性。 預設情況下，若有 `treeInterceptor`，它會查詢該 `treeInterceptor`。
  - `BrowseModeTreeInterceptor` 物件新增了 `documentUrl` 屬性
  - `BrowseModeTreeInterceptor` 物件新增了 `getLinkTypeInDocument` 方法，此方法接受一個 URL 以檢查物件的連結類型
  - `globalCommands` 中新增了 `toggleBooleanValue` 輔助函式。 此函式可用於腳本，當 `config.conf` 內的布林值狀態改變時，用以讀出其結果
- 為了和現代的自動程式碼風格檢查工具保持相容，NVDA 編碼標準已不再要求函式參數清單必須縮排兩個 tabs。(#17126, @XLTechie)
- 已將 NVDA 的 VS Code 工作區組態 作為 Git 子模組加入。(#17003)
- 新增了函式 `gui.guiHelper.wxCallOnMain`，它允許從非 GUI 執行緒安全且同步地呼叫 wx 函式，並取得其回傳值。(#17304)
- `gui.message` 中新增了一個新的訊息對話框 API。(#13007)
  - 新增的類別有：`ReturnCode`, `EscapeCode`, `DialogType`, `Button`, `DefaultButton`, `DefaultButtonSet`, `MessageDialog`。
- `brailleTables` 模組中新增了 `getDefaultTableForCurrentLang` 函式。(#17222, @nvdaes)
- 新增了 `updateCheck.UpdateInfo` 資料類別，此類別封裝了關於 NVDA 更新的後設資料。(#17310, @christopherpross)
- 擷取 `labeledBy` 屬性適用於以下情況：
  - 實作 `labelled-by` IAccessible2 關聯的應用程式中的物件。(#17436, @michaelweghorn)
  - 支援對應 `LabeledBy` UIA 屬性的 UIA 元素。(#17442, @michaelweghorn)
- 新增了使用 `gui.guiHelper.associateElements` 將 `wx.ComboBox` 與標籤 `wx.StaticText` 建立關聯的功能。(#17476)
- 新增了以下擴充點(#17428, @ctoth)：
  - `inputCore.decide_handleRawKey`：每次按鍵時呼叫
  - `speech.extensions.post_speechPaused`：當語音暫停或取消暫停時呼叫
- `bdDetect.DriverRegistrar` 中點顯器自動偵測註冊的變更：(#17521, @LeonarddeR)
  - 新增了 `addUsbDevice` 方法，用於一次註冊一個 USB 裝置。
  - `addUsbDevices` 中新增了 `matchFunc` 參數，此參數也可用於 `addUsbDevice`。
    - 這樣，在某些情況下，例如當一個 VID/PID 組合被不同驅動程式下的多個裝置共用，或是一個 HID 裝置提供多個端點時，就能更精確地篩選裝置偵測的範圍。
    - 如需更多資訊，請參閱該方法的說明文件以及 albatross 和 brailliantB 驅動程式中的範例。
- `utils.mmdevice.getOutputDevices` 模組中新增了 getOutputDevices 函式，用於列舉音訊輸出裝置。(#17678)
- `synthDriverHandler` 中新增了擴充點 `pre_synthSpeak`，它會在語音管理員執行語音合成器的 `speak` 方法之前被調用。(#17648)
- NVDA 支援 `text-indent` IAccessible2 物件屬性。(#13052, @michaelweghorn)
- 當使用包含 numLock 作為修飾鍵的手勢觸發使用 `gesture.send` 的腳本時，Num Lock 不再被關閉。(#10827, @CyrilleB79)

#### API 重大變更

這些是會破壞 API 相容性的變更。 如果您的附加元件在更新至新 API 時發生問題，請開啟一個 GitHub issue。

- `addonStore.network.BASE_URL` 常數已被移除。 由於附加元件商店的基礎網址現在可直接在 NVDA 內部設定，因此沒有計畫提供替代方案。(#17099)
- `updateCheck.CHECK_URL` 常數已被移除。 由於 NVDA 更新檢查網址現在可直接在 NVDA 內部設定，因此沒有計畫提供替代方案。(#17151)
- `NVDAObjects.UIA.winConsoleUIA.WinTerminalUIA` 已被移除，且無公開的替代方案。(#14047, #16820, @codeofdusk)
- `NVDAObjects.IAccessible.ia2TextMozilla.FakeEmbeddingTextInfo` 已被移除。(#16768, @jcsteh)
- `appModules.soffice` 中的以下符號已重新命名(#6915, @michaelweghorn)：
  - `SymphonyDocument.announceToolbarButtonToggle` 重新命名為 `SymphonyDocument.announceFormattingGestureChange`
  - `SymphonyDocument.script_toggleTextAttribute` 重新命名為 `SymphonyDocument.script_changeTextFormatting`
- `brailleDisplayDrivers.seikantk.InputGesture` 的 `space` 關鍵字參數現在預期傳入 `int` 而非 `bool`。(#17047, @school510587)
- `[upgrade]` 組態區段，包含 `[upgrade][newLaptopKeyboardLayout]`，已被移除。(#17191)
- `updateCheck.checkForUpdate` 回傳 `UpdateInfo` 物件，而非字典。(#17310, @christopherpross)
- `updateCheck.UpdateResultDialog` 和 `updateCheck.UpdateDownloader` 的建構函式已更新，會傳入 `UpdateInfo` 物件，而非包含後設資料的字典。(#17310, @christopherpross)
- 由於 NVDA 已停止支援 winmm (#17496, #17532, #17678)：
  - `nvwave` 中的以下符號已被移除，且無替代方案：`CALLBACK_EVENT`, `CALLBACK_FUNCTION`, `CALLBACK_NULL`, `HWAVEOUT`, `LPHWAVEOUT`, `LPWAVEFORMATEX`, `LPWAVEHDR`, `MAXPNAMELEN`, `MMSYSERR_NOERROR`, `usingWasapiWavePlayer`, `WAVEHDR`, `WAVEOUTCAPS`, `waveOutProc`, `WAVE_MAPPER`, `WHDR_DONE`, `WinmmWavePlayer`, and `winmm`。
  - `nvwave` 中的以下符號已被移除：`getOutputDeviceNames`, `outputDeviceIDToName`, `outputDeviceNameToID`。 請改用 `utils.mmdevice.getOutputDevices`。
  - `nvwave.WasapiWavePlayer` 已重新命名為 `nvwave.WasapiWavePlayer``WavePlayer`。 此外，其 `__init__` 方法的簽名已變更如下：
    - `outputDevice` 參數現在應只傳入字串引數。
    - 已棄用的 `closeWhenIdle` 和 `buffered` 參數已被移除。
  - `gui.settingsDialogs.AdvancedPanelControls.wasapiComboBox` 已被移除。
  - 設定定義中 `audio` 區段的 `WASAPI` 金鑰已被移除。
  - 組態金鑰 `config.conf["speech"]["outputDevice"]` 已被移除。 它已被 `config.conf["audio"]["outputDevice"]` 取代，此金鑰儲存的是 Windows 核心音訊端點裝置 ID。(#17547)
- 在 `NVDAObjects.window.scintilla.ScintillaTextInfo` 中，若未選取任何文字，且 `end` 參數設定為 `True` 時，`collapse` 方法已被覆寫為擴展至行。(#17431, @nvdaes)
- 以下符號已被移除，且無替代方案：`languageHandler.getLanguageCliArgs`, `__main__.quitGroup` and `__main__.installGroup` 。 (#17486, @CyrilleB79)
- 命令列參數的前置詞匹配功能(例如以 `--di` 來表示 `--disable-addons`)已不再支援。(#11644, @CyrilleB79)
- `bdDetect.DriverRegistrar` 的 `useAsFallBack` 關鍵字參數已重新命名為 `useAsFallback`。(#17521, @LeonarddeR)
- `[addonStore][showWarning]` 組態設定已被移除。 請改用 `addonStore.dataManager.addonDataManager.storeSettings.showWarning`。(#17597)
- `ui.browseableMessage` 接受 `sanitizeHtmlFunc` 參數。 此參數預設會呼叫 `nh3.clean`，並使用其預設引數。 這表示任何透過 `isHtml=True` 傳入 `ui.browseableMessage` 的 HTML，現在預設會被淨化。 若要變更淨化規則，例如將標籤或屬性加入白名單，請建立一個使用所需參數呼叫 `nh3.clean` 的函式。(#16985)
- 按下更新或延後按鈕時，`updateCheck.UpdateAskInstallDialog` 不再自動執行動作。 取而代之的是，新增了 `callback` 屬性，此屬性會回傳函式，當以對話框的回傳值呼叫該函式時，它會執行適當的動作。(#17582)
- 透過 `gui.runScriptModalDialog` 開啟的對話框，會被 NVDA 識別為強制回應。(#17582)
- 與「自動將系統焦點設至可設定焦點的元素」設定相關的以下 API 符號已被移除，且無替代方案：(#17598)
  - `globalCommands.GlobalCommands.script_toggleAutoFocusFocusableElements`
  - `config.conf["virtualBuffers"]["autoFocusFocusableElements"]`
  - `gui.settingsDialogs.BrowseModePanel.autoFocusFocusableElementsCheckBox`
- 由於 SAPI5 語音現在使用 `nvwave.WavePlayer` 輸出音訊：(#17592, @gexgd0419)
  - `synthDrivers.sapi5.SPAudioState` 已被移除。
  - `synthDrivers.sapi5.SynthDriver.ttsAudioStream` 已被移除。
- `autoSettingsUtils.driverSetting.DriverSetting` 中，其 id 以底線 (_) 開頭的實例，不再顯示於 NVDA 的設定中。(#17599)
- 已將鍵盤輸入回音的組態從布林值變更為整數值。(#17505, @Cary-rowen)
  - `config.conf["keyboard"]["speakTypedCharacters"]` 和 `config.conf["keyboard"]["speakTypedWords"]` 現在使用整數值。
  - 在 `config.configFlags` 中新增了 `TypingEcho` 列舉，用以表示這些模式：0=關，1=僅限於編輯區，2=總是。
  - `gui.settingsDialogs.KeyboardSettingsPanel.wordsCheckBox` 和 `gui.settingsDialogs.KeyboardSettingsPanel.charsCheckBox` 已被移除。
- `winUser.paint` 已從 `painStruct` 重新命名為 `paintStruct`，修正了傳入 `PAINTSTRUCT` 會引發例外狀況的錯誤。(#17744)
- `documentationUtils.getDocFilePath` 和 `installer.getDocFilePath` 不再會於語系說明文件資料夾中尋找.txt 檔案。(#17911, @CyrilleB79)
- `config.conf["documentFormatting"]["reportFontAttributes"]` 已被移除，請改用 `config.conf["documentFormatting"]["fontAttributeReporting"]`。(#18066)
- `config.conf["speech"]["includeCLDR"]` 已被移除，請改為透過 `config.conf["speech"]["symbolDictionaries"]` 是否包含 `"cldr"` 來檢查或修改此設定。(#18066)

#### 棄用

- `braille.filter_displaySize` 擴充點已被棄用。 請改用 `braille.filter_displayDimensions`。(#17011)
- 函數 `gui.message.messageBox`、`gui.runScriptModalDialog` 以及類 `gui.nvdaControls.MessageDialog` 已棄用。 請改用 `gui.message.MessageDialog`。(#17582)
- 以下符號已棄用 (#17486, @CyrilleB79)：
  - `__main__` 中的 `NoConsoleOptionParser`、`stringToBool`、`stringToLang` 已棄用；請改用 `argsParsing` 中的同名符號。
  - `__main__.parser` 已棄用；請改用 `argsParsing.getParser()`。
- `bdDetect.DeviceType` 已被棄用，建議改用 `bdDetect.ProtocolType` 和 `bdDetect.CommunicationType`，以考量到 HID 和 Serial 通訊協定皆可透過 USB 和藍牙運作的情況。(#17537 , @LeonarddeR)

## 2024.4.2

這是一個修補版本，用於修正與點字裝置和在 Chromium 中閱讀數學相關的錯誤。

### 錯誤修正

- 修正在 Chromium 核心的瀏覽器 (如Chrome, Edge) 中閱讀數學的錯誤。 (#17421, @NSoiffer)
- 執行韌體版本 2.4 的 Humanware Brailliant BI 40X 裝置現在可如預期般運作。 (#17518, @bramd)

## 2024.4.1

這是一個修補版本，用於修正儲存語音符號字典時出現的錯誤。

### 錯誤修正

- 修正了未儲存語音符號字典且無法關閉對話框的錯誤。 (#17344)

## 2024.4

此版本包括 Microsoft Office、點字及文件格式的多項改進。

在 Word 或 Excel 中，現在可以按兩次註解指令以在可瀏覽對話方塊中閱讀註釋或註解。 現在您可以使用檢閱游標選擇指令來選擇 PowerPoint 中的文字。 使用物件模型時，在 Word 表格中顯示行或列標題文字時，NVDA 也不再顯示無用的點字字元。

NVDA 現在可以分別設定語音和點字中的字型屬性呈現方式。

新增了一個新設定來指定執行多次按下手勢的逾時，例如讀出時間/日期指令。

現在，您可以配置 NVDA 如何在點字中顯示文字格式，並設定 NVDA 在點字中顯示段落開頭的位置。 現在使用點字遊標定位鍵時，NVDA 可以說出遊標處的字元。 遊標定位可靠性已改進，並且增加了對 PowerPoint 中定位鍵的支援。 現在，透過 HID 點字使用多行點字顯示器時，將使用所有行的點字方。 在自動點字藍牙掃描期間重新啟動 NVDA 後，NVDA 不再不穩定。

與 NVDA 相容的 Poedit 最低版本現在是 3.5 版。

eSpeak NG 已更新，增加了對法羅語和 Xextan 語言的支援。

LibLouis 已更新，為泰語和希臘語國際點字添加了新的點字表，並帶有單格重音字母。

還進行了許多修復，包括 Firefox 中的滑鼠追蹤以及隨選語音模式。

### 新功能

- 新的點字功能：
  - 現在可以變更 NVDA 以點字顯示某些文字格式屬性的方式。 可用的選項有：
    - Liblouis (預設)：使用在選定點字表中定義的格式標記。
    - 標記：使用開始和結束標記來表示某些字型屬性的開始和結束位置。 (#16864)
  - 當啟用「逐段閱讀」選項時，NVDA 現在可以配置為在點字中標示段落的開頭。 (#16895, @nvdaes)
  - 當執行點字游標定位動作時，NVDA 現在可以自動朗讀游標所在位置的字元。 (#8072, @LeonarddeR)
    - 此選項預設停用。 現在可以按兩次Microsoft Word 和Microsoft Excel 中的註解指令，以在可瀏覽的訊息中顯示註釋或註解。
- 現在可以按兩次Microsoft Word 和Microsoft Excel 中的註解指令，以在可瀏覽的訊息中顯示註釋或註解。
- 現在可以將 NVDA 配置為分別在語音和點字中提示字體屬性。 (#16755)
- 現在可以設定執行多次按下手勢的逾時，這對於靈活性較差的使用者可能有幫助。(#11929, @CyrilleB79)

### 變更

- 當從 NVDA 內啟動更新時，也會傳遞 `-c`/`--config-path` 和 `--disable-addons` 命令列參數。 (#16937)
- 元件更新：
  - 將 LibLouis 點字轉譯表更新為 3.31.0。 (#17080, @LeonarddeR，@codeofdusk)
    - 修復了西班牙語點字數字的翻譯。
    - 新增點字表：
      - 泰文一級
      - 希臘國際點字 (一方重音字母)
    - 重新命名的點字表：
      - "Thai 6 dot" was renamed to "Thai grade 0" for consistency reasons.
      - 現有的「希臘國際點字」表被重新命名為「希臘國際點字（雙單元重音字母）」以明確區分兩種希臘系統。
  - eSpeak NG 已更新至 1.52-dev 「961454ff」。 (#16775)
    - 新增了新語言法羅語和Xextan。
- 使用透過 HID 點字的多行點字顯示器時，將使用所有行的點字方。(#16993, @alexmoon)
- NVDA Poedit 支援的穩定性得到了改進，但 Poedit 的最低要求版本現在是 3.5 版。 (#16889, @LeonarddeR)

### 錯誤修正

- 點字修正：
  - 現在可以使用點字顯示器上的定位鍵在 Microsoft PowerPoint 中移動文字游標。 (#9101)
  - 修正了在非 UIA 模式下，Microsoft Word 中點字呈現的表格的行/列標題文字包含冗餘字元的錯誤。(#7212)
  - 修正了 Seika Notetaker 驅動無法使用 Space/Space+點正確生成空格/空格+點的錯誤。(#16642, @school510587)
  - 增強了當文字行內包含一個或多個 Unicode 變體選擇符或分解字元時游標定位的穩定性。(#10960, @mltony, @LeonarddeR)
  - 修正了在某些空白編輯控制項中執行向前滾動點字顯示時，NVDA 拋出錯誤的問題。(#12885)
  - 修正了在自動掃描點字藍牙裝置過程中重新啟動 NVDA 會導致重新啟動後的 NVDA 不穩定的問題。(#16933)
- 現在可以使用檢閱由標的選擇指令在 Microsoft PowerPoint 中選取文字。(#17004)
- 在隨選語音模式下，當在 Outlook 中開啟郵件、瀏覽器載入新頁面或在 PowerPoint 投影片放映中顯示新投影片時，NVDA 不再發出語音提示。(#16825, @CyrilleB79)
- 在 Mozilla Firefox 中，將滑鼠移動到連結前後的文字上時，現在能可靠地讀出該文字。(#15990, @jcsteh)
- 修正了 NVDA 偶發無法打開可瀏覽訊息（例如按 `NVDA+f` 兩次）的問題。(#16806, @LeonarddeR)
- 在附加元件更新尚未完成時更新 NVDA，不再導致附加元件被移除。(#16837)
- 現在可以在 Microsoft Excel 365 中與資料驗證下拉清單進行互動。(#15138)
- E在 VS Code 中上下箭頭瀏覽大型檔案時，NVDA 的反應不再那麼遲緩。(#17039)
- 在瀏覽模式下，長時間按住方向鍵時，尤其是在 Microsoft Word 和 Microsoft Outlook 中，NVDA 不再無回應。(#16812)
- 當游標位於 Java 應用程式中的多行編輯控制項的倒數第二行時，NVDA 不再會讀出最後一行。(#17027)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 組件更新：
  - 將 py2exe 更新到 0.13.0.2。(#16907, @dpy013)
  - 將 setuptools 更新到 72.0。(#16907, @dpy013)
  - 將 Ruff 更新到 0.5.6。(#16868, @LeonarddeR)
  - 將 nh3 更新到 0.2.18。(#17020, @dpy013)
- 在 NVDA 的儲存庫中新增了一個 `.editorconfig` 檔，以便多個 IDE 預設情況下採用基本的 NVDA 代碼樣式規則。(#16795, @LeonarddeR)
- 新增了對自訂語音符號字典的支援。(#16739, #16823, @LeonarddeR)
  - 字典可以在附加元件包中的特定語言區域資料夾中提供，例如 locale\en。
  - 字典中繼資料可以在附加元件清單（manifest）的可選部分聲明為 `symbolDictionaries` 欄位。
  - 詳情請參考開發人員指南中的 Custom speech symbol dictionaries 章節。
- 支援使用 `NVDAObject.objectFromPointRedirect` 方法重新導向從螢幕座標檢索的物件。(#16788, @Emil-18)
- 執行 SCons 時使用參數 `--all-cores` 會自動選擇 CPU 的最大核心數。(#16943, #16868, @LeonarddeR)
- 目前導航物件的開發者資訊現在包括處理器的體系結構（例如 AMD64）。(#16488, @josephsl)

#### 棄用

- 不推薦使用在 2025.1 中即將被移除的 `bool` 配置鍵 `[documentFormatting][reportFontAttributes]`，請考慮使用 `[fontAttributeReporting]`。(#16748)
  - 新的配置鍵具有與 `OutputMode` `enum` 匹配的 `int` 值，其中包含語音、點字、語音和點字以及關閉選項。
  - API 調用者可以像以前一樣使用 `bool` 值，或者如果專門處理語音或點字，則檢查 `OutputMode`。
  - 這些配置鍵目前會同步至 2025.1。
- `NVDAObjects.UIA.InaccurateTextChangeEventEmittingEditableText` 已棄用，沒有公開替代方案。(#16817, @LeonarddeR)

## 2024.3.1

這是一個修補版本，用於修正自動附加元件更新通知的錯誤。

### 錯誤修正

- 在自動檢查附加元件更新時，NVDA 在網路連線較差的情況下不再卡住。(#17036)

## 2024.3

在 NVDA 啟動時，附加元件商店現在會通知您是否有可用的附加元件更新。

現在有選項可以將 Unicode 正規化套用於語音和點字輸出。 這在讀取某些語音合成器或點字表無法識別的字元時非常有用，尤其是那些有相容替代字元的情況，如社交媒體上常見的粗體和斜體字元。 此外，該功能也支援在 Microsoft Word 方程式編輯器中讀取方程式。

本版還支援了 Help Tech Activator Pro 點顯器。

已新增未指派的快速鍵，用於垂直和水平滾動滑鼠滾輪。

這次更新修正了多個錯誤，特別是針對 Windows 11 表情符號面板和剪貼簿歷史紀錄的問題。 對於網頁流覽器，修正了錯誤訊息朗讀、圖形、標題、表格標籤以及核取方塊/選擇紐功能表項目的一系列問題。

LibLouis 已更新，新增了幾個點字表，包含塞爾維亞語西里爾字母、意第緒語、數種古代語言、土耳其語以及國際音標。 eSpeak 已更新，新增了對卡拉卡爾帕克語的支援。 Unicode CLDR 也已更新。

### 新功能

- 新的按鍵指令：
  - 新增了未指派的快速鍵，用於垂直和水平滾動滑鼠滾輪，從而增強在具有動態內容的網頁和應用程式中的導航，例如 Dism++。(#16462, @Cary-Rowen)
- 新增了對語音和點字輸出進行 Unicode 正規化的支援。(#11570, #16466 @LeonarddeR).
  - 這在讀取某些語音合成器或點字表無法識別的字元時非常有用，尤其是那些有相容替代字元的情況，如社交媒體上常見的粗體和斜體字元。
  - 此外，該功能也支援在 Microsoft Word 方程式編輯器中讀取方程式。(#4631)
  - 您可以在 NVDA 設定對話框中的各自設定類別中啟用此功能，適用於語音和點字。
- 預設情況下，NVDA 啟動後如果有任何可用的附加元件更新，您就會收到通知。(#15035)
  - 您可以在「附加元件商店」設定類別中庭用此功能。
  - NVDA 每天會檢查附加元件更新。
  - 僅會檢查同一頻道內的更新(例如，安裝的測試版附加元件只會通知測試版頻道的更新)。
- 新增對 Help Tech Activator Pro 點顯器的支援。(#16668)

### 變更

- 元件更新：
  - eSpeak NG 已更新至 1.52-dev commit `54ee11a79`。(#16495)
    - 新增了卡拉卡爾帕克語。
  - Unicode CLDR 已更新至 45.0 版本。(#16507, @OzancanKaratas)
  - Fast_diff_match_patch(用於偵測終端和其他動態內容的差異)已更新至 2.1.0 版本。(#16508, @codeofdusk)
  - LibLouis 點字翻譯器已更新至 3.30.0。(#16652, @codeofdusk)
    - 新增點字表：
      - 塞爾維亞語西里爾字母。
      - 意第緒文。
      - 幾種古代語言：聖經希伯來文、阿卡德文、敘利亞文、烏加里特文，以及轉寫的楔形文字。
      - 土耳其文二級點字。(#16735)
      - 國際音標。(#16773)
  - NSIS 已更新至 3.10 版本。(#16674, @dpy013)
  - Markdown 已更新至 3.6 版本。(#16725, @dpy013)
  - Nh3 已更新至 0.2.17 版本。(#16725, @dpy013)
- 備用點字輸入轉譯表現在與備用點字輸出轉意表相同，均為英文統一一級(Unified English Braille Code grade 1)。(#9863, @JulienCochuyt, @LeonarddeR)
- NVDA 現在會提示NVDA 現在會讀出沒有可存曲子元素但帶有標籤或描述的插圖。(#14514)沒有可存取子項，但具有標籤或描述的圖形。
- 在瀏覽模式中逐行閱讀時，長圖形或表格標題的每行將不再重複朗讀「標題」。(#14874)
- 在 Python 主控台中，當移動輸入歷史記錄時，最後未執行的命令將不再丟失。(#16653, @CyrilleB79)
- 現在作為可選的 NVDA 使用統計收集的一部分，會傳送一個獨特的匿名 ID。(#16266)
- 預設情況下，在製作可攜式版時，將會建立一個新資料夾。 如果您嘗試寫入非空的目錄，將顯示警告訊息通知您。(#16686)

### 錯誤修正

- Windows 11 修正：
  - 修正了關閉剪貼簿歷史記錄和表情符號面板時，NVDA 卡住的問題。(#16346, #16347, @josephsl)當關閉剪貼簿歷史記錄和表情符號面板時，NVDA 不再會顯示卡住的情況。
  - 修正了 NVDA 在輸入候選介面無法讀出可見候選字的錯誤。(#14023, @josephsl)
  - 修正了在流覽表情符號面板功能表項目時，NVDA 會重複朗讀“剪貼簿歷史記錄”的問題。(#16532, @josephsl)
  - 修正了在表情符號面板中檢視顏文字和符號時，NVDA 的語音和點字輸出被打斷的問題。(#16533, @josephsl)
- 網頁瀏覽器修正：
  - 修正了在 Google Chrome 和 Mozilla Firefox 中，未讀出使用 `aria-errormessage` 引用的錯誤訊息的問題。(#8318)
  - 現在 NVDA 會在 Mozilla Firefox 中使用 `aria-labelledby` 來作為表格的可存取名稱(如果存在)。(#5183)
  - 修正了在 Google Chrome 和 Mozilla Firefox 中首次進入子功能表時，NVDA 未正確讀出選擇鈕和核取方塊功能表項目的問題。(#14550)
  - 修正了當頁面包含表情符號時，NVDA 的流覽模式尋找功能不太準確的問題。(#16317, @LeonarddeR)
  - 修正了在 Mozilla Firefox 中，當游標位於行末插入點時，NVDA 無法準確讀出當前字元、單字和行的問題。(#3156, @jcsteh)
  - 關閉文件或退出 Google Chrome 時，Nvda 不再導致 Chrome 崩潰。(#16893)
- 修正了在 Windows 11 中無法正確朗讀 Eclipse 和其他基於 Eclipse 的環境中的自動完成建議的問題。(#16416, @thgcode)
- 大幅提高了動態內容朗讀功能的穩定性，尤其在終端機應用程式環境下。(#15850, #16027, @Danstiv)
- 提高了“重設組態為預設值”功能的穩定性。(#16755, @Emil-18)
- 修正了在 Microsoft Excel 中編輯儲存格文字時，不朗讀已選擇文字的問題。(#15843)
- 修正了在使用 Java Access Bridge 的應用程式中，NVDA 在最後一行會重複朗讀前一行內容的問題。(#9376, @dmitrii-drobotov)
- 在 LibreOffice Writer（版本 24.8 及更新版本）中，使用相應的鍵盤快速鍵切換文本格式(如粗體、斜體、底線、下標/上標、對齊方式)時，NVDA 會讀出格式屬性變化(例如“粗體開”、“粗體關”)。(#4248, @michaelweghorn)
- 修正了使用 UIA 的應用程式中，在文字方塊中使用游標鍵導航時，NVDA 有時未正確朗讀當前字元/單字的錯誤。(#16711, @jcsteh)
- 修正了在 Windows 10/11 小算盤中貼上內容時，NVDA 未正確讀出貼上的完整數字的問題。(#16573, @TristanBurchett)
- 修正了在中斷連線後再次連線到遠端桌面會話，Nvda 語音無聲的錯誤。(#16722, @jcsteh)
- 在 Visual Studio Code 中新增對物件名稱的文字檢閱指令的支援。(#16248, @Cary-Rowen)
- 修正了在單聲道音訊裝置上 NVDA 聲音輸出可能出現故障的問題。(#16770, @jcsteh)
- NVDA 在瀏覽 outlook.com / Modern Outlook 的「收件者」、「副本」或「密件副本」欄位時，將會報讀地址。(#16856)
- NVDA 現在能更優雅地處理附加元件安裝失敗的情況。(#16704)

### 開發者需要了解的變化

- NVDA 代碼庫現在使用 Ruff 代替 flake8 進行代碼品質檢查。(#14817)
- 修正了 NVDA 的構建系統，使其在使用 Visual Studio 2022 版本 17.10 及以上版本時能夠正常運作。(#16480, @LeonarddeR)
- 在事件記錄檢視器和 NVDA Python 主控台中，現在使用等寬字體，以便在垂直導航時游標可以保持在同一欄。 這對於閱讀 traceback 中的錯誤位置標記尤其有用。(#16321, @CyrilleB79)
- 新增了自訂點字表的功能。(#3304, #16208, @JulienCochuyt, @LeonarddeR)
  - 點字表可以在附加元件包中的 brailleTables 資料夾中提供。
  - 點字表的中繼資料可以新增至附加元件清單中的可選 brailleTables 部分，或新增至與點字表子目錄中.ini 檔案相同格式的檔案，該檔案位於 scratchpad 資料夾中。
  - 請參閱 開發人員指南中的點字翻譯表部分 以取得更多詳細資訊。
- 當 `gainFocus` 事件排隊處理帶有有效 `focusRedirect` 屬性的物件時，現在由 `eventHandler.lastQueuedFocusObject` 持有 `focusRedirect` 屬性指向的物件，而不是最初排隊的物件。(#15843)
- NVDA 在啟動時會記錄其可執行檔案的架構(x86)。 (#16432, @josephsl)
- `wx.CallAfter`（在 `monkeyPatches/wxMonkeyPatches.py` 中包裝）現在包含適當的 `functools.wraps` 標記。(#16520, @XLTechie)
- 新增了一個用於排程任務的模組 utils.schedule，該模組使用了 pip 模組 schedule。(#16636)
  - 您可以使用 scheduleThread.scheduleDailyJobAtStartUp 來自動排程一個任務，該任務會在 NVDA 啟動後執行，並在之後每 24 小時執行一次。 工作排程會有延遲，以避免衝突。
  - 可以使用 `scheduleThread.scheduleDailyJob` 和 `scheduleJob` 計畫自訂時間任務，如果任務計畫發生衝突將拋出 `JobClashError`。
- 現在支援為託管 Edge WebView2(msedgewebview2.exe)控制項的應用程式建立應用模組。(#16705, @josephsl)

## 2024.2

新增了聲音分割功能。 這使得可以在一個聲道 (例如左聲道) 播放 NVDA 語音，並讓所有其他應用程式在其他聲道 (例如右聲道) 播放聲音。

新增了調整語音選項的新指令，可以跳到第一個或最後一個設定，且能夠以較大幅度增加或減小設定。 還有新的快速導覽指令，允許使用者指派手勢以快速跳到以下類型的內容：段落、垂直對齊段落、相同樣式文字、不同樣式文字、功能表項目、切換按鈕、進度列、圖表和數學公式。

有許多新的點字功能和錯誤修正。 新增了一種稱為「顯示語音輸出」的新點字模式。 啟用後，點字顯示器會準確顯示 NVDA 所說的內容。 也增加了對 BrailleEdgeS2 和 BrailleEdgeS3 顯示器的支援。 LibLouis 已更新，並新增了新的詳細(以大寫字母表示)白俄羅斯文和烏克蘭文點字表、寮文點字表和用於閱讀希臘文的西班牙文點字表。

eSpeak 已更新，新增了新語言提格利尼亞語。

對 Thunderbird、Adobe Reader、網頁瀏覽器、Nudi 和 Geekbench 等應用程式進行了許多小錯誤修正。

### 新功能

- 新的按鍵指令：
  - 新的快速導覽指令 P，用於在瀏覽模式下跳到下一個/上一個文字段落。(#15998, @mltony)
  - 新的未指派的快速導航指令，可用於跳到下一個/上一個：
    - 圖表 (#10826)
    - 垂直對齊段落 (#15999, @mltony)
    - 功能表項目 (#16001, @mltony)
    - 切換按鈕 (#16001, @mltony)
    - 進度列 (#16001, @mltony)
    - 數學公式 (#16001, @mltony)
    - 相同樣式文字 (#16000, @mltony)
    - 不同樣式文字 (#16000, @mltony)
  - 新增了在語音選項設定到第一個、最後一個、向前和向後的指令。(#13768, #16095, @rmcpantoja)
    - 在語音選項中設定第一個/最後一個設定值，沒有指定的手勢。(#13768)
    - 以較大幅度增加或減小目前的語音選項設定(#13768)：
      - 桌上型電腦：`NVDA+control+pageUp` 及 `NVDA+control+pageDown`。
      - 筆記型電腦：`NVDA+control+shift+pageUp` 及 `NVDA+control+shift+pageDown`。
  - 新增了一個未指派的輸入手勢來切換讀出圖表及說明的開關。(#10826, #14349)
- 點字：
  - 新增了對 BrailleEdgeS2 和 BrailleEdgeS3 顯示器的支援。(#16033, #16279, @EdKweon)
  - 新增了一種稱為「顯示語音輸出」的新點字模式。(#15898, @Emil-18)
    - 啟用後，點字顯示器會準確顯示 NVDA 所說的內容。
    - 可透過按下 `NVDA+alt+t` 或從點字設定對話框進行切換。
- 聲音分割：(#12985, @mltony)
  - 允許在一個聲道 (例如左聲道) 播放 NVDA 語音，並讓所有其他應用程式在其他聲道 (例如右聲道) 播放聲音。
  - 透過 `NVDA+alt+s` 切換。
- 支援了在 contenteditable HTML 元素中朗讀行/列標題。(#14113)
- 在文件格式設定中新增了一個選項來停用讀出圖表及說明。(#10826, #14349)
- 在 Windows 11 22H2 及更高版本中，當電話號碼等相容的資料複製到剪貼簿時，NVDA 會讀出建議的動作(Windows 11 2022 Update 及以後)。(#16009, @josephsl)
- NVDA 會在語音停止後保持音訊裝置喚醒，以防止下一個語音的開始被某些音訊裝置 (例如藍牙耳機) 的待機功能截斷。(#14386, @jcsteh, @mltony
- 現在支援 HP 安全瀏覽器。(#16377)

### 變更

- 附加元件商店：
  - 在“其他詳細資料”區域支援顯示附加元件的最低 NVDA 版本要求和最新通過測試的 NVDA 版本。(#15776, @Nael-Sayegh)
  - 社群評論操作將在商店的所有索引標籤中提供。(#16179, @nvdaes)
- 元件更新：
  - 將 LibLouis 點字轉譯表更新為 3.29.0。(#16259, @codeofdusk)
    - 新的詳細 (以大寫字母表示) 白俄羅斯文和烏克蘭文點字表。
    - 用於閱讀希臘文字的新西班牙文表。
    - 新寮國一級點字錶。(#16470)
  - eSpeak NG 已更新至 1.52-dev commit `cb62d93fd7`。 (#15913)
    - 新增了新語言提格利尼亞語。
- 更改了 BrailleSense 裝置的多個手勢，以避免和法文點字表的字元發生衝突。(#15306)
  - `alt+向左鍵`對應到 27 點+Space
  - `alt+向右鍵` 對應到 57 點+Space
  - `alt+向上鍵` 對應到 237 點+Space
  - `alt+向下鍵` 對應到 567 點+Space
- 較低的標點符號等級不再讀出常用於目錄的連續填充點。(#15845, @CyrilleB79)

### 錯誤修正

- 修正了 Adobe Reader 中數學屬性被讀出的問題，此問題曾導致語音和點字輸出效果不佳或錯誤。(#17980)
- Windows 11 修正：
  - NVDA將再次讀出硬體鍵盤輸入時的建議。(#16283, @josephsl)
  - 在版本24H2 (2024 Update和Windows Server 2025) 中，滑鼠和觸控互動可用於快速設定中。(#16348, @josephsl)
- 附加元件商店：
  - 當按下 `ctrl+tab` 時，焦點會正確移動到新的索引標籤標題。(#14986, @ABuffEr)
  - 如果快取檔案不正確，NVDA 將不再重新啟動。(#16362, @nvdaes)
- 基於 Chromium 的瀏覽器搭配 UIA 使用的修正：
  - 修正了會導致 NVDA 沒有回應的錯誤。(#16393, #16394)
  - Backspace 鍵現在可以在 Gmail 的登入欄位中正常運作。(#16395)
- 現在，在啟用 NVDA 的「處理來自其他應用程式的按鍵」設定的情況下使用 Nudi 6.1 時，Backspace 鍵可以正常運作。(#15822, @jcsteh)
- 修正了啟用「滑鼠移動時播放聲音座標」時，應用程式處於睡眠模式時仍會播放聲音座標的錯誤。(#8059, @hwf1324)
- 在 Adobe Reader 中，NVDA 不再忽略 PDF 中公式上設定的替代文字。(#12715)
- 修正了導致 NVDA 無法讀取 Geekbench 中的功能區和選項的錯誤。(#16251, @mzanm)
- 修正了儲存組態時可能無法儲存所有設定檔的罕見情況。(#16343, @CyrilleB79)
- 在 Firefox 和基於 Chromium 的瀏覽器中，當聚焦在可編輯內容內的清單 (ul / ol) 上時，按下 Enter 鍵 NVDA 將正確切換為焦點模式。(#16325)
- 現在，當在 Thunderbird 訊息清單中選擇「欄」檢視時，可以正確讀出欄位狀態的變更。(#16323)
- 修正了命令列參數 `-h`/`--help` 無法使用的問題。(#16522, @XLTechie)
- NVDA 對 Poedit 翻譯軟體 3.4 版或更高版本的修正，在翻譯具有 1 種或 2 種以上複數形式的語言（例如中文、波蘭語）時可以正確運作。(#16318)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 為不明 Windows 版本(高於 10.0.22000，例如 10.0.25398)產生實體 `winVersion.WinVersion` 對象時，返回“Windows 11 不明”而不是“Windows 10 不明”。(#15992, @josephsl)
- 透過在 appveyor.yml 中新增可配置變數以停用或修改構建腳本的 NV Access 特定部分，使 AppVeyor 構建過程更容易用於 NVDA Fork。(#16216, @XLTechie)
- 新增了一份文件，解釋了在 AppVeyor 上構建 NVDA Fork 的過程。(#16293, @XLTechie)

## 2024.1

在語音模式中加入新「隨選」模式。 當選擇此模式時，NVDA 不會自動說話 (例如，移動遊標時)，但在使用讀出某些內容的指令 (如讀出視窗標題) 時會報讀。 在 NVDA 設定的語音類別中，現在可以從循環切換語音模式指令 (NVDA+s) 中排除不必要的語音模式。

Mozilla Firefox 的 NVDA 瀏覽模式提供新的原生選取模式 (透過`NVDA+shift+f10` 切換)。 開啟後，在瀏覽模式下選擇文字也會操作 Firefox 自己的原生選取。 當使用 Ctrl+C 複製文字將直接使用 Firefox 的複製，能夠複製豐富的內容，而不是 NVDA 的純文字表示形式。

附加元件商店現在支援透過選擇多個附加元件進行批次操作 (例如安裝、啟用附加元件) 加入一個新動作可以開啟所選附加元件的評論網頁。

音訊輸出裝置和自動音量調整模式選項已從「選擇合成器」對話框中刪除。 它們被移到音訊設定類別，且可以使用 NVDA+Ctrl+U 開啟該設定。

eSpeak-NG、LibLouis 點字轉譯表和 Unicode CLDR 已更新。 新推出泰文、菲律賓文和羅馬尼亞文點字表。

有許多錯誤修正，特別是針對附加元件商店、點字、Libre Office、Microsoft Office 和音訊等。

### 重要說明

- 此版本會破壞與現有附加元件的相容性。
- 不再支援 Windows 7 和 Windows 8。 Windows 8.1 是支援的最低 Windows 版本。

### 新功能

- 附加元件商店：
  - 附加元件商店現在支援透過選擇多個附加元件進行批次操作 (例如安裝、啟用附加元件)。(#15350, #15623, @CyrilleB79)
  - 新增了一個新動作，用於開啟網頁以查看或提供有關所選附加元件的回饋。(#15576, @nvdaes)
- 增加了對藍牙低功耗 HID 點字顯示器的支援。(#15470)
- Mozilla Firefox 的 NVDA 瀏覽模式提供新的原生選取模式 (透過`NVDA+shift+f10` 切換)。 開啟後，在瀏覽模式下選擇文字也會操作 Firefox 自己的原生選取。 當使用 Ctrl+C 複製文字將直接使用 Firefox 的複製，能夠複製豐富的內容，而不是 NVDA 的純文字表示形式。 當使用 Ctrl+C 複製文字將直接使用 Firefox 的複製，能夠複製豐富的內容，而不是 NVDA 的純文字表示形式。但請注意，由於是由 Firefox 處理複製內容，因此 NVDA 在此模式下不會讀出「複製到剪貼簿」的訊息。(#15830)
- 在啟用 NVDA 瀏覽模式的情況下在 Microsoft Word 中複製文字時，現在會包括格式設定。 這樣做的一個缺點是，在 Microsoft Word/Outlook 瀏覽模式下按下 Ctrl+C 時，NVDA 將不再讀出「複製到剪貼簿」的訊息，因為是由應用程式處理副製，而不是 NVDA。(#16129)
- 在語音模式中加入新「隨選」模式。 當選擇此模式時，NVDA 不會自動說話 (例如，移動遊標時)，但在使用讀出某些內容的指令 (如讀出視窗標題) 時會報讀。(#481, @CyrilleB79)
- 在 NVDA 設定的語音類別中，現在可以從循環切換語音模式指令 (NVDA+s) 中排除不必要的語音模式。(#15806, @lukaszgo1)
  - 如果您目前正在使用 NoBeepsSpeechMode 附加元件，請考慮將他移除，並在設定中停用「嗶嗶聲」和「隨選」模式。

### 變更

- NVDA 不再支援 Windows 7 和 Windows 8。 Windows 8.1 是支援的最低 Windows 版本。(#15544)
- 組件更新：
  - LibLouis 點字翻譯器已更新至 3.28.0。(#15435, @codeofdusk)。(#15435, #15876, @codeofdusk)
    - 新推出泰文、菲律賓文和羅馬尼亞文點字表。
  - eSpeak NG 已更新至 1.52-dev commit 530bf0abf。(#15036)
  - CLDR 表情符號和符號說明已更新至版本 44.0。(#15712, @OzancanKaratas)
  - Java Access Bridge 更新至 17.0.9+8Zulu(17.46.19)。(#15744)
- E按鍵指令：
  - 以下指令現在支援按兩下拼讀及按三下以字元說明拼讀：讀出選取內容、讀出剪貼簿內的文字和讀出焦點物件。(#15449, @CyrilleB79)
  - 切換螢幕簾幕的指令現在有一個預設快速鍵：NVDA+Ctrl+Esc。(#10560, @CyrilleB79)
  - 按四下時，讀出選取內容的指令現在會在可瀏覽的視窗中顯示選取內容。(#15858, @Emil-18)
- Microsoft Office：
  - 當在 Excel 儲存格聽取格式資訊時，若有外框和背景資訊才會讀出。(#15560, @CyrilleB79)
  - NVDA 不會讀出未標記的群組，例如最新版本的 Microsoft Office 365 功能區中的分組。(#15638)
- 音訊輸出裝置和自動音量調整模式選項已從「選擇合成器」對話框中刪除。 它們被移到音訊設定類別，且可以使用 NVDA+Ctrl+U 開啟該設定。(#15512, @codeofdusk)
- NVDA 滑鼠設定類別中的“讀出滑鼠所指物件類型”選項已重新命名為“讀出滑鼠所指物件”。 此選項現在會在滑鼠進入物件時讀出有關該物件的更多相關資訊，例如狀態(已選取/按下）或表格中的儲存格座標。(#15420, @LeonarddeR)
- 説明功能表中新增了新的項目，用於存取 NV Access 的“說明、訓練與支援”頁面和商店。(#14631)
- NVDA 針對 Poedit 3 以上的版本支援進行大幅修改。 如果 Poedit 1 使用者想使用 Poedit 中增強的無障礙功能 (例如閱讀譯者註釋和評論的快速鍵)，我們鼓勵他們更新到 Poedit 3。(#15313, #7303, @LeonarddeR)
- 點字檢視器和語音檢視器現在在安全模式下已停用。(#15680)
- 在物件導覽期間，停用 (無法使用) 的物件將不再被忽略。(#15477, @CyrilleB79)
- 指令快速參考新增了目錄。(#16106)

### 錯誤修正

- 附加元件商店：
  - 當附加元件的狀態在其被聚焦時發生變化，例如從「正在下載」變更為「已下載」，現在會正確地讀出更新後的項目狀態。(#15859, @LeonarddeR)
  - 安裝附加元件時，安裝提示不再被重新啟動對話框覆蓋。(#15613, @lukaszgo1)
  - 重新安裝不相容的附加元件時，不會再被強制停用。(#15584, @lukaszgo1)
  - 已停用或不相容的附加元件現在可以更新。(#15568, #15029)
  - 當附加元件下載失敗時，NVDA 現在會復原並顯示錯誤訊息。(#15796)
  - NVDA 在開啟和關閉附加元件商店後，不再間歇性地無法重新啟動。(#16019, @lukaszgo1)
- 音訊：
  - 當多個聲音快速連續播放時，NVDA 不再會短暫卡頓。(#15311, #15757, @jcsteh)
  - 如果音訊輸出裝置設定為非預設值，且該裝置在不可用後重新變為可用，NVDA 現在會切回已設定的裝置，而非繼續使用預設裝置。(#15759, @jcsteh)
  - 如果輸出裝置的設定變更或其他應用程式釋放了對裝置的獨占控制，NVDA 現在會恢復音訊播放。(#15758, #15775, @jcsteh)
- 點字：
  - 多行點字顯示器不再導致 BRLTTY 驅動程式崩潰，並會被視為一個連續的顯示器。(#15386)
  - 更多包含有用文字的物件會被檢測到，且其文字內容將顯示在點字上。(#15605)
  - 縮寫點字輸入現已恢復正常運作。(#15773, @aaclause)
  - 在更多情況下，當將導覽物件移動到表格儲存格之間時，點字會即時更新。(#15755, @Emil-18)
  - 讀出目前焦點、目前導航物件和目前選取內容的結果，現在會顯示在點字上。(#15844, @Emil-18)
  - 修正了 Albatross 點字驅動程式將 Esp32 微控制器誤識別為 Albatross 點顯器的錯誤。(#15671)
- LibreOffice：
  - 使用 Control+Backspace 鍵刪除單字時，若被刪除的單字後方有空白字元(如空格或 Tab)，現在也會正確朗讀。(#15436, @michaelweghorn)
  - 使用 NVDA+End 鍵報讀狀態列的功能，現在也適用於 LibreOffice 24.2 及更新版本的對話框。(#15591, @michaelweghorn)
  - 在 LibreOffice 24.2 及更新版本中，現已支援所有預期的文字屬性。 這使得在 Writer 中報讀一行時，拼寫錯誤的報讀可以正常運作。 (#15648, @michaelweghorn)
  - 在 LibreOffice 24.2 及更新版本中，現在也能正確報讀標題層級。(#15881, @michaelweghorn)
- Microsoft Office：
  - 修正了在停用 UIA 的 Excel 中，當按下 `control+y`、`control+z` 或 `alt+backspace` 時，未朗讀操作結果且點字顯示未同時更新的錯誤。(#15547)
  - 修正了在停用 UIA 的 Word 中，當按下 `control+v`、`control+x`、`control+y`、`control+z`、`alt+backspace`、亦或按住 `backspace`、`control+backspace` 時，點字未更新的錯誤。 當啟用了 UIA 並輸入文字時，且點字顯示與檢視同步，且檢視跟隨插入點時，也會進行更新。 (#3276)
  - 修正了在 Word 中，使用原生 Word 表格導航快速鍵 `alt+home`、`alt+end`、`alt+pageUp`、`alt+pageDown` 時，不讀儲存格座標的錯誤。(#15805, @CyrilleB79)
- 物件快速鍵的朗讀有所改善。(#10807, #15816, @CyrilleB79)
- SAPI4 合成器現在可以正確支援嵌入在語音中的音量、速度和音調變化。(#15271, @LeonarddeR)
- 使用 Java Access Bridge 的應用程式中現在可以正確朗讀多行狀態。(#14609)
- NVDA 可以朗讀更多 Windows 10 和 11 對話框內容。(#15729, @josephsl)
- 修正了使用 UIA 時，NVDA 無法讀取 Microsoft Edge 新載入的頁面的錯誤。(#15736)
- 使用「讀出全部」或拼讀文字的指令時，句間或字間的停頓時間不再隨著時間逐漸縮短。(#15739, @jcsteh)
- 修正了 NVDA 在朗讀大量文字時，偶爾凍結的錯誤。(#15752, @jcsteh)
- 修正了使用 UIA 存取 Microsoft Edge 時，NVDA 在流覽模式下無法啟動個別控制項的錯誤。(#14612)
- 修正了組態設定檔被破壞時，NVDA 無法啟動的錯誤，在這種情況下，會和以前一樣將配置還原為預設值。(#15690, @CyrilleB79)
- 修正了對 Windows Forms 應用程式中系統清單檢視（`SysListView32`）控制項的支援。(#15283, @LeonarddeR)
- 修正了 NVDA 的 Python 主控台歷史記錄在個別情況下會被覆蓋的錯誤。(#15792, @CyrilleB79)
- 當收到大量 UIA 事件(例如，大量文字被列印到終端或在 WhatsApp Messenger 中收聽語音訊息時)，NVDA 可以保持回應狀態。(#14888, #15169)
  - 這一新行為可以透過 NVDA “進階”設定中的設定來停用。
- 修正了 NVDA 無法取得在 Windows Defender 應用程式防護(WDAG)中執行的應用程式焦點的錯誤。(#15164)
- 當滑鼠在語音檢視器中移動時，語音檢視器中的文字不再更新。(#15952, @hwf1324)
- 修正了在 Firefox 或 Chrome 中使用 `escape` 或 `alt+upArrow` 關閉下拉式方塊後，NVDA 未切換回流覽模式的錯誤。(#15653)
- 修正了在 iTunes 中按上下鍵選擇下拉式方塊中的選項時會被切換回流覽模式的錯誤。(#15653)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 請注意：此版本與先前的附加元件 API 不相容。 附加元件需要重新測試，並更新其資訊清單。
- 構建 NVDA 現在需要 Visual Studio 2022。 關於 Visual Studio 元件的具體清單，請參閱 NVDA 文件
- 新增了以下擴充點：
  - `treeInterceptorHandler.post_browseModeStateChange`. (#14969, @nvdaes)
  - `speech.speechCanceled`. (#15700, @LeonarddeR)
  - `_onErrorSoundRequested`(應該透過調用 `logHandler.getOnErrorSoundRequested()` 取得) (#15691, @CyrilleB79)
- 在附加元件的翻譯中現在可以使用複數形式。(#15661, @beqabeqa473)
- 在二進位包中包含了 python3.dll，供附加元件使用外部庫（利用穩定 API。(#15674, @mzanm)
- `BrailleDisplayDriver` 基類現在具有 `numRows` 和 `numCols` 屬性，用於提供有關多行點字顯示器的資訊。 對於單行點字顯示器，仍然支援設定 `numCells`，對於多行盲文顯示器，`numCells` 將返回儲存格總數。(#15386)
- 將 BRLTTY 的 BrlAPI 更新到 0.8.5 版本，並將其對應的 Python 模組更新到相容 Python 3.11 的版本。(#15652, @LeonarddeR)
- 新增了 `speech.speakSsml` 函數，您可以使用 SSML 編寫 NVDA 語音序列。(#15699, @LeonarddeR)
  - 目前支援將以下標籤轉換為相應的 NVDA 語音命令：
    - `Prosody` (`pitch`，`rate` 和 `volume`)。僅支援倍數的形式調節(例如 `200%`)。
    - 將 `say-as` 的 `interpret` 屬性設定為 `characters`
    - 將 `voice` 的 `xml:lang` 設定為 XML 的語言
    - 將 `break` 的 `time` 屬性設定為毫秒值，例如 `200ms`
    - 將 `mark` 的 `name` 屬性設定為標記的名稱，例如 `mark1`，需要提供回呼函數
  - 示例： `speech.speakSsml('<speak><prosody pitch="200%">hello</prosody><break time="500ms" /><prosody rate="50%">John</prosody></speak>')`
  - SSML 解析功能由 `speechXml` 模組中的 `SsmlParser` 類提供支援。
- 對 NVDA Controller Client 庫的改進：
  - 庫的檔案名稱不再包含表示架構的尾碼，即 `nvdaControllerClient32/64.dll` 現在稱為 `nvdaControllerClient.dll`。(#15718, #15717, @LeonarddeR)
  - 新增了一個示例，展示如何使用 Rust 語言調用 nvdaControllerClient.dll。(#15771, @LeonarddeR)
  - 新增了以下函數到 Nvda Controller Client：(#15734, #11028, #5638, @LeonarddeR)
    - `nvdaController_getProcessId`：取得 Controller Client 使用的目前 NVDA 實例的處理程序 ID (PID)。
    - `nvdaController_speakSsml`：指示 NVDA 根據給定的 SSML 進行朗讀。此函數還支援：
      - 提供符號等級。
      - 提供要朗讀的語音優先順序。
      - 同步(阻塞)和非同步(立即返回)朗讀。
    - `nvdaController_setOnSsmlMarkReachedCallback`：註冊一個類型為 `onSsmlMarkReachedFuncType` 的回呼函數，以便在使用 `nvdaController_speakSsml` 處理同步 SSML 過程時，遇到每個 `<mark />` 標籤時都會調用該回呼函數。(#15734, #11028, #5638, @LeonarddeR)。
  - 注意：NVDA Controller Client 中的新功能僅支援 NVDA 2024.1 及以上。
- 更新了 `include` 依賴：
  - detours 更新到 `4b8c659f549b0ab21cf649377c7a84eb708f5e68`。(#15695)
  - ia2 更新到 `3d8c7f0b833453f761ded6b12d8be431507bfe0b`。(#15695)
  - sonic 更新到 `8694c596378c24e340c09ff2cd47c065494233f1`。(#15695)
  - w3c-aria-practices 更新到 `9a5e55ccbeb0f1bf92b6127c9865da8426d1c864`。(#15695)
  - wil 更新到 `5e9be7b2d2fe3834a7107f430f7d4c0631f69833`。(#15695)
- 由 `hwPortUtils.listUsbDevices` 提供的裝置資訊現在包含 USB 裝置的匯流排報告描述(鍵 `busReportedDeviceDescription`)。(#15764, @LeonarddeR)
- 對於 USB 串列裝置，`bdDetect.getConnectedUsbDevicesForDriver` 和 `bdDetect.getDriversForConnectedUsbDevices` 現在返回包含 `deviceInfo` 字典的鍵值對，該字典包含有關 USB 裝置的資料，例如 `busReportedDeviceDescription`。(#15764, @LeonarddeR)
- 當組態檔 `nvda.ini` 被破壞時，會在重新初始化配置之前保存備份副本。(#15779, @CyrilleB79)
- 當使用裝飾器定義手勢時，可以指定 `speakOnDemand` 布林參數來控制腳本是否應在“隨選”語音模式下朗讀。(#481, @CyrilleB79)
  - 用於提供資訊的手勢(例如，讀出視窗標題、讀出時間/日期)應該在“隨選”模式下朗讀。
  - 用於執行操作的手勢(例如，移動游標、更改參數)不應該在“隨選”模式下朗讀。
- 修正了在 `scons -c` 期間刪除 git 跟蹤檔會導致重建時缺少 UIA COM 介面的錯誤。(#7070, #10833, @hwf1324)
- 修正了在構建 `dist` 時未偵測到某些代碼更改的錯誤，該錯誤導致無法觸發新的構建。 現在 `dist` 始終會被重建。(#13372, @hwf1324)
- 預設類型為標準的 `gui.nvdaControls.MessageDialog` 不再拋出 None 轉換異常，因為沒有指定提示音。(#16223, @XLTechie)

#### API 重大變更

這些是會破壞 API 相容性的變更。 如果您的附加元件在更新至新 API 時發生問題，請開啟一個 GitHub issue。

- NVDA 現在使用 Python 3.11 進行構建。(#12064)
- 更新了以下 pip 依賴：
  - configobj 更新到 5.1.0dev 版本 (commit: `e2ba4457c4651fa54f8d59d8dcdd3da950e956b8`)。(#15544)
  - Comtypes 更新到 1.2.0 版本。(#15513, @codeofdusk)
  - Flake8 更新到 4.0.1 版本。(#15636, @lukaszgo1)
  - py2exe 更新到 0.13.0.dev 提交版本 (commit: `4e7b2b2c60face592e67cb1bc935172a20fa371d`)。(#15544)
  - robotframework 更新到 6.1.1 版本。(#15544)
  - SCons 更新到 4.5.2 版本。(#15529, @LeonarddeR)
  - sphinx 更新到 7.2.6 版本。(#15544)
  - wxPython 更新到 4.2.2a 提交版本 (commit: `0205c7c1b9022a5de3e3543f9304cfe53a32b488`)。(#12551, #16257)
- 刪除了以下 pip 依賴：
  - typing_extensions：Python 3.11 原生支援此功能，無需單獨安裝。(#15544)
  - nose：不再使用 nose，而是使用 unittest-xml-reporting 產生 XML 報告。(#15544)
- 刪除了 `IAccessibleHandler.SecureDesktopNVDAObject`。 當 NVDA 執行在使用者設定檔上時，可以使用擴充點 `winAPI.secureDesktop.post_secureDesktopStateChange` 來跟蹤安全桌面的存在。(#14488)
- 刪除了 `braille.BrailleHandler.handlePendingCaretUpdate`，沒有公開替代方案。(#15163, @LeonarddeR)
- 刪除了 `bdDetect.addUsbDevices 和 bdDetect.addBluetoothDevices`。 點顯器驅動應實現 `registerAutomaticDetection` 類方法。 該方法接收一個 `DriverRegistrar` 物件，可在其上使用 `addUsbDevices` 和 `addBluetoothDevices` 方法。(#15200, @LeonarddeR)
- `BrailleDisplayDriver` 上的檢查方法的預設實現現在要求同時設定 `threadSafe` 和 `supportsAutomaticDetection` 屬性為 `True`。(#15200, @LeonarddeR)
- 不允許傳遞 lambda 函數給 `hwIo.ioThread.IoThread.queueAsApc`，因為函數應該是弱引用的。(#14627, @LeonarddeR)
- 刪除了 `IoThread.autoDeleteApcReference`。(#14924, @LeonarddeR)
- 為了支援遇到大寫字母時音調變化，語音合成器現在必須在其驅動的 `supportedCommands` 屬性中明確聲明它們對 `PitchCommand` 的支援。(#15433, @LeonarddeR)
- 刪除了 `speechDictHandler.speechDictVars`。使用 `NVDAState.WritePaths.speechDictsDir` 代替 `speechDictHandler.speechDictVars.speechDictsPath`。(#15614, @lukaszgo1)
- 刪除了 `languageHandler.makeNpgettext` 和 `languageHandler.makePgettext`。 現在原生支援 `npgettext` 和 `pgettext`。(#15546)
- 針對 Poedit 的應用程式模組進行了重大更改。刪除了 `fetchObject` 函數。(#15313, #7303, @LeonarddeR)
- 從 `hwPortUtils` 中刪除了以下冗余類型和常量：(#15764)
  - `PCWSTR`
  - `HWND` (替換為 `ctypes.wintypes.HWND`)
  - `ULONG_PTR`
  - `ULONGLONG`
  - `NULL`
  - `GUID` (替換為 `comtypes.GUID`)
- 刪除了 `gui.addonGui.AddonsDialog`。(#15834)
- 刪除了 `touchHandler.TouchInputGesture.multiFingerActionLabel` 沒有公開替代方案。(#15864, @CyrilleB79)
- `NVDAObjects.IAccessible.winword.WordDocument.script_reportCurrentHeaders` 已被刪除，沒有公開替代方案。(#15904， @CyrilleB79)
- 以下應用程式模組已被刪除。 請從其相應替換模組中匯入。(#15618, @lukaszgo1)

移除的模組名稱 | 替代模組
--- | ---
`azardi-2.0` | `azardi20`
`azuredatastudio` | `code`
`azuredatastudio-insiders` | `code`
`calculatorapp` | `calculator`
`code - insiders` | `code`
`commsapps` | `hxmail`
`dbeaver` | `eclipse`
`digitaleditionspreview` | `digitaleditions`
`esybraille` | `esysuite`
`hxoutlook` | `hxmail`
`miranda64` | `miranda32`
`mpc-hc` | `mplayerc`
`mpc-hc64` | `mplayerc`
`notepad++` | `notepadPlusPlus`
`searchapp` | `searchui`
`searchhost` | `searchui`
`springtoolsuite4` | `eclipse`
`sts` | `eclipse`
`teamtalk3` | `teamtalk4classic`
`textinputhost` | `windowsinternal_composableshell_experiences_textinput_inputapp`
`totalcmd64` | `totalcmd`
`win32calc` | `calc`
`winmail` | `msimn`
`zend-eclipse-php` | `eclipse`
`zendstudio` | `eclipse`

#### 棄用

- 不再推薦使用 `watchdog.getFormattedStacksForAllThreads`，請改用 `logHandler.getFormattedStacksForAllThreads`。(#15616, @lukaszgo1)
- `easeOfAccess.canConfigTerminateOnDesktopSwitch` 已被棄用，因為自 Windows 7 不再受支援後，此功能已失效。(#15644, @LeonarddeR)
- `winVersion.isFullScreenMagnificationAvailable` 已被棄用，請改用 `visionEnhancementProviders.screenCurtain.ScreenCurtainProvider.canStart`。(#15664, @josephsl)
- WinVersion 模組中的以下 Windows 版本常量已被棄用 (#15647, @josephsl)：
  - `winVersion.WIN7`
  - `winVersion.WIN7_SP1`
  - `winVersion.WIN8`
- `bdDetect.KEY_*` 常量已被棄用。 請改用 `bdDetect.DeviceType.*`。(#15772, @LeonarddeR)。
- `bdDetect.DETECT_USB` 和 `bdDetect.DETECT_BLUETOOTH` 常量已被棄用，沒有公開替代方案。(#15772, @LeonarddeR)。
- 不再推薦使用 `gui.ExecAndPump`，請改用 `systemUtils.ExecAndPump`。(#15852, @lukaszgo1)

## 2023.3.4

這是一個修正安全問題和安裝程式問題的修補版本。 請依照 NVDA 的安全性政策，負責任地揭露安全問題。

### 安全性修正

- 在強制安全模式下，防止載入自訂組態。 (GHSA-727q-h8j2-6p45)

### 錯誤修正

- 修正了導致 NVDA 處理程序無法正常結束的錯誤。(#16123)
- 修正了如果之前的 NVDA 處理程序無法正常結束，NVDA 安裝可能會失敗甚至無法復原的錯誤。(#16122)

## 2023.3.3

這是一個用來修正安全性問題的修補版本。 請依照 NVDA 的安全性政策，負責任地揭露安全問題。

### 安全性修正

- 防止特製內容可能發動的反射式 XSS 攻擊，以避免造成任意程式碼執行。 (GHSA-xg6w-23rw-39r8)

## 2023.3.2

這是一個用來修正安全性問題的修補版本。 2023.3.1 中的安全性修正未正確解決問題。 請依照 NVDA 的安全性政策，負責任地揭露安全問題。

### 安全性修正

- 2023.3.1 中的安全性修正未正確解決問題。 修正了阻止未經身份驗證的使用者使用系統權限進行可能的系統存取和任意程式碼執行的問題。 (GHSA-h7pp-6jqw-g3pj)

## 2023.3.1

這是一個用來修正安全性問題的修補版本。 請依照 NVDA 的安全性政策，負責任地揭露安全問題。

### 安全性修正

- 修正了阻止未經身份驗證的使用者使用系統權限進行可能的系統存取和任意程式碼執行的問題。 (GHSA-h7pp-6jqw-g3pj)

## 2023.3

此版本包括對音訊輸出的效能、反應速度和穩定性的改進。 新增了選項來控制 NVDA 聲音和嗶嗶聲的音量，或讓它們跟隨您正在使用的語音音量。

NVDA 現在可以定時更新 OCR 的結果，並說出新出現的文字。 這可以在 NVDA 設定對話框中的 Windows OCR 類別中進行設定。

多項點字修正，改進了裝置偵測和游標移動。 現在可以在自動偵測中排除不需要的驅動程式，以提高自動偵測的效能。 同時也加入了新的 BRLTTY 指令。

附加元件商店、Microsoft Office、Microsoft Edge 快顯功能表和 Windows 小算盤的錯誤也已修正。

### 新功能

- - 增強的聲音管理：
  - 新增音訊設定類別：
    - 可用 `NVDA+control+u` 來開啟。(#15497)
    - 可讓 NVDA 音效和嗶嗶聲的音量跟隨您正在使用的語音的音量設定。(#1409)
    - 可獨立設定 NVDA 音效的音量。(#1409, #15038)
    - 變更音訊輸出裝置和切換自動音量調整的設定已從「選擇合成器」對話框移至新的音訊設定類別。 這些選項將於 2024.1 版本從「選擇語音合成器」對話框中移除。 (#15486, #8711)
  - NVDA 現在將透過 Windows Audio Session API (WASAPI) 輸出音訊，這可能會提高 NVDA 語音和音效的反應、效能和穩定性。(#14697, #11169, #11615, #5096, #10185, #11061)
  - 注意：WASAPI 與某些附加元件不相容。 這些附加元件有相容的更新可用，請在更新 NVDA 前先更新它們。 在更新 NVDA 時，這些附加元件的不相容版本將被停用：
    - Tony's Enhancements 1.15 或更早版本。(#15402)
    - NVDA global commands extension 12.0.8 或更早版本。(#15443)
- NVDA 現在能夠在執行光學字元辨識 (OCR) 時不斷更新結果，說出出現的新文字。(#2797)
  - 若要啟用此功能，請在 NVDA 設定對話框的 Windows OCR 類別中啟用「定時更新辨識內容」選項。
  - 啟用後，您可以透過切換讀出動態內容變化 (按 NVDA+5)來切換朗讀新文字。
- 當使用點顯器的自動偵測時，現在可以在選擇點顯器對話框中選擇要排除偵測的驅動程式。(#15196)
- 文件格式設定中的新選項「讀出行縮排時忽略空白行」。(#13394)
- 新增了未指派的手勢，可在瀏覽模式下按索引標籤群組進行導覽。(#15046)

### 變更

- 點字：
  - 當終端機程式中的文字發生變更而沒有移動插入點位置時， 點顯器上的文字將能夠正確顯示。 這包括點字顯示與檢視同步的情況。 (#15115)
  - 更多 BRLTTY 按鍵組合對應到 NVDA 指令(#6483)：
    - `learn`：切換 NVDA 輸入說明
    - `prefmenu`：開啟 NVDA 功能表
    - `prefload`/`prefsave`：載入/儲存 NVDA 組太
    - `time`：顯示時間
    - `say_line`：讀出檢閱遊標所在行
    - `say_below`：使用檢閱游標讀出全部
  - 僅當啟用了 BrlAPI 的 BRLTTY 個體正在執行時，BRLTTY 驅動程式才可用。(#15335)
  - 進階設定中的「啟用 HID 點字支援」已被刪除，取而代之的是新選項。 您現在可以在點字顯示器選擇對話框中停用特定驅動程式的自動偵測功能。 (#15196)
- 附加元件商店：如果商店中提供了已安裝的附加元件，現在將在「可用附加元件」索引標籤中列出。(#15374)
- NVDA 功能表中的一些快捷鍵已更新。(#15364)

### 錯誤修正

- Microsoft Office：
  - 修正了未啟用文件格式設定中「讀出標題」和「讀出附註及註解」時 Microsoft Word 中的當機問題。(#15019)
  - 在 Word 和 Excel 中，能夠更正確讀出文字對齊方式。(#15206, #15220)
  - 修正了 Excel 中某些儲存格格式捷徑的報讀。(#15527)
- Microsoft Edge：
  - 在 Microsoft Edge 中開啟快顯功能表時，NVDA 將不再跳回先前瀏覽模式的位置。(#15309)
  - NVDA 再次能夠讀出 Microsoft Edge 中下載的快顯功能表。(#14916)
- 點字：
  - 使用手勢切換顯示或隱藏點字遊標和選取範圍指示器時，將能夠正確切換。(#15115)
  - 修正了儘管已連接另一個點字裝置，但 Albatross 點字顯示器仍嘗試初始化的錯誤。(#15226)
- 附加元件商店：
  - 修正了未勾選「包含不相容附加元件」時，不相容的附加元件仍列在商店中的錯誤。(#15411)
  - 當切換啟用或停用狀態篩選器時，因相容性原因而被阻擋的附加元件能夠被正確篩選出來。(#15416)
  - 修正了阻止使用外部安裝工具升級或取代已啟用的不相容附加元件的錯誤。(#15417)
  - 修正了安裝附加元件後需重新啟動 NVDA 才會說話的錯誤。(#14525)
  - 修正了如果先前的下載失敗或被取消則無法安裝附加元件的錯誤。(#15469)
  - 修正了更新 NVDA 時處理不相容附加元件的問題。(#15414, #15412, #15437)
- NVDA 再次能夠讀出 Windows Server、LTSC 和 LTSB 版本 Windows 32 位元小算盤的計算結果。(#15230)
- 當巢狀視窗 (孫視窗) 取得焦點時，NVDA 不再會忽略焦點變更。(#15432)
- 修正了 NVDA 啟動過程中當機的潛在原因。(#15517)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- `braille.handler.handleUpdate` 和 `braille.handler.handleReviewMove` 已變更，以避免立即更新。 在此變更之前，當這些方法中的任何一個被頻繁調用時，都會消耗大量的資源。在此變更之前，當這兩個方法之一被非常頻繁地呼叫時，會耗用大量資源。 這些方法現在會在每次核心迴圈結束後排隊等待更新。 其也是執行緒安全的，可以從背景執行緒調用。(#15163)
- 新增了在點顯器自動偵測過程中註冊自訂點顯器驅動的官方支援。 有關更多的詳細資訊，請參閱 `braille.BrailleDisplayDriver` 類文件。 最值得注意的是，`supportsAutomaticDetection` 屬性必須設定為 `True`，並且必須實現 `registerAutomaticDetection` `classmethod`。(#15196)

#### 棄用

- `braille.BrailleHandler.handlePendingCaretUpdate` 已棄用，沒有公開的替代介面。 將於 2024.1 被刪除。(#15163)
- 從 `NVDAObjects.window.excel` 匯入的常量 `xlCenter`、`xlJustify`、`xlLeft`、`xlRight`、`xlDistributed`、`xlBottom`、`xlTop` 已棄用。 請改用 `XlHAlign` 或 `XlVAlign` 枚舉。(#15205)
- 映射 `NVDAObjects.window.excel.alignmentLabels` 已棄用。 請改用 `XlHAlign` 或 `XlVAlign` 枚舉的 `displayString` 方法。(#15205)
- `bdDetect.addUsbDevices` 和 `bdDetect.addBluetoothDevices` 已棄用。 點顯器驅動應實現 `registerAutomaticDetection` 類方法。 該方法接收一個 `DriverRegistrar` 物件，可在其上使用 `addUsbDevices` 和 `addBluetoothDevices` 方法。(#15200)
- `BrailleDisplayDriver` 上的偵測方法的預設實現使用 `bdDetect.driverHasPossibleDevices` 來標記為執行緒安全的裝置。 從 NVDA 2024.1 開始，為了讓基本方法使用 `bdDetect.driverHasPossibleDevices`，`supportsAutomaticDetection` 屬性也必須設定為 `True`。(#15200)

## 2023.2

此版本引入附加元件商店來取代原有的附加元件管理員。 在附加元件商店中您可以瀏覽、搜尋、安裝及更新社群附加元件。 您現在也可在自行承擔風險的情況下手動忽略附加元件不相容的問題。

加入新的點字功能、指令及點顯器支援。 也加入了 OCR 及平面物件導覽的輸入手勢。 Microsoft Office 的導覽與格式報讀有所改進。

有許多錯誤修正，特別是針對點字、Microsoft Office、網頁瀏覽器及 Windows 11。

eSpeak-NG、LibLouis 點字轉譯表和 Unicode CLDR 已更新。

### 新功能

- 在 NVDA 中加入附加元件商店。(#13985)
  - 瀏覽、搜尋、安裝及更新社群附加元件。
  - 針對過時的附加元件可以手動忽略不相容。
  - 移除附加元件管理員並以附加元件商店取代。
  - 更多資訊請參考更新的使用者指南。
- 新的輸入手勢：
  - 未指派的手勢，用來循環切換 Windows OCR 可用語言。(#13036)
  - 未指派的手勢，用來循環切換點字顯示訊息模式。(#14864)
  - 未指派的手勢，用來循環切換顯示點字選取範圍指示器。(#14948)
  - 加入預設的鍵盤手勢來在物件導覽階層的平面檢視中移到上一個或下一個物件。(#15053)
    - 桌上型電腦：NVDA+數字鍵盤9及 NVDA+數字鍵盤3分別對應移到上一個及下一個物件。
    - 筆記型電腦：Shift+NVDA+[ 及 Shift+NVDA+] 分別對應移到上一個及下一個物件。
- 新的點字功能：
  - 增加對 Help Tech Activator 點顯器的支援。(#14917)
  - 加入一個新選項，用來切換開啟或關閉選取範圍指示器 (第7和第8點)。(#14948)
  - 加入一個新選項，在使用定位鍵移動檢閱游標時，選擇是否要移動系統游標或焦點。(#14885, #3166)
  - 當按三下數字鍵盤2來讀出檢閱游標位置的字元的字元碼時，該資訊也會以點字呈現。(#14826)
  - 增加了對 ARIA 1.3 中 aria-brailleroledescription 屬性的支援，允許網頁開發者覆寫點字顯示器上顯示的元素類型。(#14748)
  - Baum 點字驅動程式：增加幾個點字手勢來執行常見的鍵盤指令，例如 `windows+d` 和 `alt+tab`。 請參閱 NVDA 用戶指南以取得完整列表。 (#14714)
- 增加 Unicode 符號的發音：
  - 點字符號例如 `⠐⠣⠃⠗⠇⠐⠜`。(#13778)
  - Mac Option 鍵 `⌥`。(#14682)
- 增加 Tivomatic Caiku Albatross 點顯器的手勢。(#14844, #15002)
  - 顯示點字設定對話框
  - 存取狀態列
  - 循環切換游標形狀
  - 循環切換點字顯示訊息模式
  - 切換點字游標的開或關
  - 切換點字選取範圍指示器的狀態
  - 循環切換定位檢閱游標時移動系統游標的模式。(#15122)
- Microsoft Office 功能：
  - 啟用文件格式中的高亮後，可在 Microsoft Word 中讀出高亮顏色。(#7396, #12101, #5866)
  - 啟用文件格式中的顏色後，可在 Microsoft Word 中讀出背景顏色。(#5866)
  - 當在 Excel 中使用快速鍵切換儲存格的粗體、斜體、底線或刪除線等格式時，能夠讀出結果。(#14923)
- 實驗性加強聲音管理：
  - NVDA 現在可以透過 Windows Audio Session API (WASAPI) 輸出聲音，這可以提高 NVDA 語音和聲音的回應能力、效能和穩定性。(#14697)
  - 可到進階設定中啟用使用 WASAPI。 此外，如果啟用了 WASAPI，還可以配置以下進階設定。
    - 讓 NVDA 音效及嗶嗶聲跟隨您所使用的語音音量的選項。(#1409)
    - 單獨調整 NVDA 音效音量的選項。(#1409, #15038)
  - 啟用 WASAPI 時存在已知的間歇性崩潰問題。(#15150)
- 在 Mozilla Firefox 和 Google Chrome 中，如果作者使用 aria-haspopup 來指定控制項，當開啟對話框、網格、清單或樹狀檢視時，NVDA 現在能夠報讀。(#8235)
- 現在可以在建立 NVDA 可攜式版時在指定路徑中使用系統變數 (例如 `%temp%` 或 `%homepath%`)。(#14680)
- 在 Windows 10 May 2019 更新及以後版本中，NVDA 可以在開啟、變更和關閉虛擬桌面時讀出虛擬桌面名稱。(#5641)
- 加入一個系統範圍的參數允許使用者及系統管理員強制 NVDA 以安全模式啟動。(#10018)

### 變更

- 元件更新：
  - eSpeak NG 更新至 1.52-dev commit `ed9a7bcf`。(#15036)
  - 更新 LibLouis 點字轉譯表至 3.26.0。(#14970)
  - CLDR 更新至版本 43.0。(#14918)
- LibreOffice 變更：
  - 在 LibreOffice Writer 7.6及以後版本，當讀出檢閱游標位置時，能夠正確讀出游標/插入點在該頁面的正確位置，如同在 Microsoft Word 中一樣。(#11696)
  - 讀出狀態列 (例如按下 `NVDA+end` 觸發) 適用於 LibreOffice。(#11698)
  - 在 LibreOffice Calc 中移動到不同的儲存格時，當在 NVDA 設定中停用讀出儲存格座標時，NVDA 不再錯誤地報讀之前焦點的儲存格座標。(#15098)
- 點字變更：
  - 透過標準 HID 點字驅動程式使用點字顯示器時，dpad 可用於模擬方向鍵及 Enter 鍵。 此外，空格+第1點 和 空格+第4點 現在分別對應於向上方向鍵和向下方向鍵。 (#14713)
  - 動態網頁內容 (ARIA live regions) 現在可以在點字上呈現。 這可以在進階設定面板中停用。 (#7756)
- Dash 及破折號符號將總是傳送到合成器。(#13830)
- 即使在使用 UIA 存取 Word 文件時，Microsoft Word 中報讀的距離現在也會遵循 Word 進階選項中定義的單位。(#14542)
- 在編輯控制項中移動游標時，NVDA 的回應速度更快。(#14708)
- 報讀連結目標的腳本，現在會從插入點/焦點位置報讀，而非從導覽器物件報讀。(#14659)
- 建立可攜式版時不再需要輸入磁碟代號作為絕對路徑的一部分。(#14680)
- 如果 Windows 的系統時間有設定顯示秒數，按 NVDA+F12 時也會讀出來。(#14742)
- NVDA 現在會報讀帶有實用位置資訊的未標示群組，例如在 Microsoft Office 365 近期版本的功能表中。(#14878)

### 錯誤修正

- 點字：
  - 對點字顯示器的輸入/輸出進行了多項穩定性修正，大幅減少 NVDA 的錯誤和當機現象。(#14627)
  - 避免在自動偵測期間多次切換到不使用點顯器模式，從而產生更清晰的事件記錄，降低性能開銷。(#14524)
  - 如果自動偵測到 HID 藍牙裝置(例如 HumanWare Brailliant 或 APH Mantis)且 USB 連線可用，NVDA 將切換回 USB 模式。 在先前版本中，該機制僅適用于藍牙序列埠。(#14524)
  - 在未連線點字顯示器時，若透過按下 `alt+f4` 或點擊關閉按鈕來關閉點字檢視器，點字子系統的顯示尺寸將再次重設為無點字格。(#15214)
- 網頁瀏覽器：
  - 修正了 NVDA 偶發導致 Mozilla Firefox 當機或停止回應的錯誤。(#14647)
  - 修正了在 Mozilla Firefox 和 Google Chrome 中，關閉“讀出輸入字元”後在某些文字編輯區中仍會朗讀已輸入字元的錯誤。(#8442)
  - 修正了在嵌入式 Chromium 控制項中無法使用流覽模式的錯誤。(#13493, #8553)
  - 修正了在 Mozilla Firefox 中，將滑鼠移到連結後的文字上，個別情況下不能讀出所指向文字的錯誤。(#9235)
  - 修正了在 Chrome 和 Edge 中，無法讀出個別圖形連結所指向的網址的錯誤。(#14783)
  - 修正了當嘗試讀出沒有 href 屬性的連結所指向的網址時，NVDA 無聲的錯誤。 現在會提示“連結沒有明確目標”。(#14723)
  - 在瀏覽模式中，NVDA 不再會錯誤地忽略焦點移至父項或子項控制項的情況，例如從一個控制項移至其父項清單項目或網格儲存格。(#14611)
    - 但請注意，此修正僅在瀏覽模式設定中的「自動將系統焦點設至可設定焦點的元素」選項關閉時(此為預設值)才適用。
- Windows 11 修正：
  - NVDA 再次能夠讀出記事本狀態列內容。(#14573)
  - 在記事本及檔案總管中的分頁之間切換將可報讀分頁名稱及位置。(#14587, #14388)
  - 輸入中文和日文等語言的文字時，NVDA 再次能夠讀出候選字。(#14509)
  - 能夠再次開啟 NVDA 說明功能表中的貢獻者與授權頁。(#14725)
- Microsoft Office 修正：
  - 修正了在 Excel 中快速切換儲存格時，NVDA 會讀錯儲存格座標或選取範圍的錯誤。(#14983, #12200, #12108)
  - 修正了當 Excel 儲存格從外部獲得焦點時，點字和視覺高亮焦點會被設定為前一個焦點物件的錯誤。(#15136)
  - 修正了無法讀出 Microsoft Excel 和 Outlook 中密碼控制項的錯誤。(#14839)
- 對於目前語言環境中沒有符號描述的符號，則會使用英文環境下的預設符號等級。(#14558, #14417)
- 修正了在讀音字典中不使用規則運算式時，則無法在替代文字欄位中使用反斜線字元的錯誤。(#14556)
- 在 Windows 10 和 11 的小算盤中，於精簡重疊模式下的標準小算盤輸入運算式時，NVDA 可攜式版不再會沒有任何反應或播放錯誤音效。(#14679)
- NVDA 現在能從更多先前會導致其完全凍結的情況中復原，例如應用程式停止回應。(#14759)
- 修正了當對某些終端機和主控台強制使用 UIA 支援時，會導致凍結並在記錄檔中產生大量訊息的錯誤。(#14689)
- 重設組態後，NVDA 不再會拒絕儲存組態。(#13187)
- 從啟動器執行臨時版本時，NVDA 不會再誤導使用者以為他們可以儲存組態。(#14914)
- NVDA 現在對指令和焦點變更的回應通常會稍微快一些。(#14928)
- 在某些系統上，顯示 OCR 設定不再失敗。(#15017)
- 修正了與儲存和載入 NVDA 組態相關的錯誤，包括切換合成器等。(#14760)
- 修正了導致文字檢閱向上滑動觸控手勢移動頁面，而非移至上一行的錯誤。(#15127)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 在附加元件清單規範中新增了建議的約定。 對於 NVDA 相容性而言，目前這些是可選的，但鼓勵或要求提交到附加元件商店時遵循這些約定。(#14754)
  - 對名稱欄位使用 `lowerCamelCase`。
  - 版本欄位使用 `<major>.<minor>.<patch>` 的格式(附加元件商店中繼資料需要)。
  - url 欄位使用 `https://` 協定(附加元件商店中繼資料需要)。
- 新增了名為 `Chain` 的新擴充點類型，可用於反覆運算註冊處理器返回的可反覆運算物件。(#14531)
- 新增了 `bdDetect.scanForDevices` 擴充點。 註冊處理器可以來生成不適合現有類別(例如 USB 或藍牙)的 `BrailleDisplayDriver/DeviceMatch` 對。(#14531)
- 新增擴充點： `synthDriverHandler.synthChanged`。 (#14618)
- NVDA 語音合成器現在會於首次需要時，才快取可用的設定值，而非在載入語音合成器時。(#14704)
- 您現在可以對一個手勢對應表呼叫 export 方法，將其匯出為一個字典。 此字典可透過將其傳入 `GlobalGestureMap` 的建構函式，或傳入現有對應表的 update 方法，來匯入至另一個手勢。(#14582)
- `hwIo.base.IoBase` 及其衍生類別新增了建構函式參數，用以傳入 `hwIo.ioThread.IoThread`。 若未提供，則使用預設執行緒。(#14627)
- `hwIo.ioThread.IoThread` 新增了 `setWaitableTimer` 方法，用於透過 Python 函式設定可等候計時器。 同樣地，新的 `getCompletionRoutine` 方法可讓您安全地將一個 Python 方法轉換為完成常式。(#14627)
- `offsets.OffsetsTextInfo._get_boundingRects` 始終返回 `List[locationHelper.rectLTWH]`，這與 `textInfos.TextInfo` 的子類的預期一致。(#12424)
- `highlight-color` 現在是一個格式欄位屬性。(#14610)
- NVDA 現在應能更準確地判斷事件記錄中的訊息是否來自 NVDA 核心。(#14812)
- NVDA 不再會記錄關於已棄用 appModule 的不準確警告或錯誤。(#14806)
- 現在，所有 NVDA 擴充點都在開發者指南的一個全新專章中進行了簡要描述。(#14648)
- `scons checkpot` 不再會檢查 `userConfig` 子資料夾。(#14820)
- 現在可以使用 `ngettext` 和 `npgettext`，以單數和複數形式來定義可翻譯的字串。(#12445)

#### 棄用

- 將 lambda 函式傳遞給 `hwIo.ioThread.IoThread.queueAsApc` 的用法已被棄用。 相反，應該傳遞弱引用函數。(#14627)
- 不推薦從 `hwIo.base` 匯入 `LPOVERLAPPED_COMPLETION_ROUTINE`。 而應該從 `hwIo.ioThread` 匯入。(#14627)
- `IoThread.autoDeleteApcReference` 已被棄用。 這是在 NVDA 2023.1 中引入的，不屬於公開 API 的一部分。 在刪除之前，它表現為無操作，即內容管理器不產生任何結果。(#14924)
- `gui.MainFrame.onAddonsManagerCommand` 已棄用。請使用 `gui.MainFrame.onAddonStoreCommand` 代替。(#13985)
- `speechDictHandler.speechDictVars.speechDictsPath` 已棄用。請使用 `NVDAState.WritePaths.speechDictsDir` 代替。(#15021)
- 不推薦從 `speechDictHandler.dictFormatUpgrade` 匯入 `voiceDictsPath` 和 `voiceDictsBackupPath`。 而應該使用 `NVDAState` 中的 `WritePaths.voiceDictsDir` 和 `WritePaths.voiceDictsBackupDir`。(#15048)
- `config.CONFIG_IN_LOCAL_APPDATA_SUBKEY` 已棄用。 而應該使用 `config.RegistryKey.CONFIG_IN_LOCAL_APPDATA_SUBKEY`。(#15049)

## 2023.1

在設定中加入「文件導覽」類別，其中包含一個新選項「段落樣式」。 這可用於本身不支援段落導覽的文件編輯器，例如記事本或 Notepad++。

按下 `NVDA+k` 可讀出連結的目標網址。

針對帶注釋的網頁內容(例如註釋和註腳)進行了改進。 當按 `NVDA+d` 朗讀注釋時，可迴圈流覽摘要(例如“有註釋，有註腳”)。

支援了 Tivomatic Caiku Albatross 46/80 點顯器。

改進了對 ARM64 和 AMD64 版 Windows 的支援。

許多錯誤修正，尤其是針對 Windows 11。

更新 eSpeak, LibLouis, Sonic rate boost and Unicode CLDR 等。 新的點字表，包括喬治亞文書寫點字、史瓦西里文 (肯亞) 及齊切瓦文 (馬拉威)。

注意：

- 此更新會導致現有的附加元件不相容。

### 新功能

- 在 Microsoft Excel 使用 UI Automation 能夠自動讀出表格中的列及欄標題。(#14228)
  - 注意：這是指透過「插入」功能表中的「表格」按鈕所建立的表格。 在「表格樣式」選項中的「首欄」和「標題列」分別對應欄與列標題。
  - 這不是指通過命名範圍實現的螢幕閱讀器行列標題朗讀，目前 UIA 不支援此功能。
- 加入未指派的指令，用來切換延遲讀出字元的字詞解釋。(#14267)
- 加入一個實驗性功能，利用 Windows 終端機中的 UIA 通知支援來讀出終端機中的新文字或變更的文字，藉此提高穩定性和反應。(#13781)
  - 有關此實驗性功能的限制，請參閱使用者指南。
- 在 ARM64 架構的 Windows 11 上，瀏覽模式現在可用於 AMD64 應用程式，例如 Firefox、Google Chrome 及 1Password。(#14397)
- 在「文件導覽」中加入一個新選項「段落樣式」。 這支援包括單一換行 (一般) 和多個換行 (區塊) 等段落導覽方式。 這可用於本身不支援段落導覽的文字編輯器，例如記事本或 Notepad++。(#13797)
- 現在能夠讀出多個註釋。 按 `NVDA+d` 循環讀出具有多個註釋來源中每個註釋的摘要。 例如，當文字具有相關的註釋及註腳時。(#14507, #14480)
- 支援 Tivomatic Caiku Albatross 46/80 點字顯示器。(#13045)
- 新的全域指令用來讀出連結目標 (`NVDA+k`)。 按一下會以語音/點字讀出導覽物件所在的連結目標網址。 按兩下會將它顯示在一個視窗中，便於詳細瀏覽。(#14583)
- 新增未指派的指令 (工具類別)：在視窗中讀出連結目標。 與按兩下 `NVDA+k` 相同，但可能對點字使用者更方便。(#14583)

### 變更

- 更新 LibLouis 點字轉譯表至 3.24.0。(#14436)
  - 主要更新包括匈牙利文、UEB 及中文注音點字。
  - 支援丹麥點字標準 2022。
  - 新的點字表，包括喬治亞文書寫點字、史瓦西里文 (肯亞) 及齊切瓦文 (馬拉威)。
- 更新Sonic rate boost library 至 commit `1d70513`。(#14180)
- 更新 CLDR 至版本 42.0。(#14273)
- 更新 eSpeak NG 至 1.52-dev commit `f520fecb`。(#14281, #14675)
  - 修正對於大數的報讀。(#14241)
- 在 Java 應用程式中，具有切換選取狀態的控制項，將在未選取項目時也讀出，而非僅在選取項目時。(#14336)

### 錯誤修正

- Windows 11 修正：
  - 在開啟「開始」功能表時，NVDA 會讀出搜尋醒目提示。(#13841)
  - 在 ARM 系統架構上，x64 應用程式不再被視為 ARM64 應用程式。(#14403)
  - 可以操作剪貼簿歷程紀錄，例如釘選項目。(#14508)
  - 在 Windows 11 22H2 及更新版本中，再次可以使用滑鼠及觸控方式來與系統匣浮動視窗或「開啟檔案」對話框等進行互動。(#14538, #14539)
- 在 Microsoft Excel 的註釋中輸入 @mention 時能夠讀出建議。(#13764)
- 在 Google Chrome 網址列中，建議控制項 (切換至分頁、移除建議等) 能夠在選取時正確讀出。(#13522)
- 讀出文字格式資訊時，在 Wordpad 或事件紀錄檢視器中的顏色能夠被明確讀出，而非只有「預設色彩」。(#13959)
- 使用 Firefox，GitHub issue 頁面上的 "Show options" 按鈕現在能夠正確操作。(#14269)
- 在 Outlook 2016/365 進皆搜尋對話框中的日期選擇器控制項，其中的標籤和數值能夠讀出來。(#12726)
- 在 Firefox、Chrome 及 Edge 中，ARIA 切換按鈕控制項，能夠被正確讀出，而非核取方塊。(#11310)
- 當按下 HTML 表格內的按鈕來變更針對欄標題的排序，NVDA 會自動讀出排序狀態。(#10890)
- 瀏覽網頁時，當焦點跳入地標區域範圍時，其名稱總是能夠被自動讀出。(#13307)
- 當啟用大寫字母發出嗶嗶聲或讀出大寫，並啟用延遲讀出字詞解釋時，NVDA 不會再重覆發出嗶聲或說出大寫。(#14239)
- NVDA 能夠更準確讀出 Java 應用程式中表格內的控製項。(#14347)
- 使用多個設定檔時，一些設定不會再發生不一致的情況。(#14170)
  - 修正了以下的設定：
    - 文件格式中的行縮排。
    - 文件格式中的儲存格框線
    - 點字設定中的顯示訊息
    - 點字設定中的點字游標跟隨
  - 在極少數情況下，安裝此版本的 NVDA 後，組態設定檔中使用的這些設定可能會被非預期修改。
  - 將 NVDA 升級到此版本後請檢查您設定檔中的這些選項。
- 更多語言能夠讀出表情符號。(#14433)
- 修正一些元素點字標記會漏掉的錯誤。(#13815)
- 修正了在「預設」選項與該「預設」選項的值之間切換時，組態變更無法正確儲存的問題。(#14133)
- 在設定 NVDA 時，總會有至少一個按鍵被設為 NVDA 鍵。(#14527)
- 當透過通知區域存取 NVDA 功能表時，若沒有更新可用，NVDA 將不會再提示有擱置的更新。(#14523)
- 在 foobar2000 中能夠正確讀出長度超過一天音檔的剩餘時間、經過時間及總時間。(#14127)
- 在 Chrome 與 Firefox 等網頁瀏覽器中，檔案下載等通知訊息除了以語音提示外，也能夠以點字呈現。(#14562)
- 修正在 Firefox 中導覽到表格的第一列或最後一列時的錯誤。(#14554)
- 當以 --lang=Windows 參數啟動 NVDA 時，現在可以再次開啟 NVDA 的「一般」設定對話框。(#14407)
- 在 Kindle for PC 中，NVDA 不再會於翻頁後無法繼續閱讀。(#14390)

### 開發者需要了解的變化

請注意：此版本與先前的附加元件 API 不相容。 附加元件需要重新測試，並更新其資訊清單。 請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 現在，當在非英文系統上本機執行時，系統測試應能通過。(#13362)
- 在 ARM 架構的 Windows 11 系統中，x64 應用程式不再被視為 ARM64 應用程式。(#14403)
- 在新的 UIA scenarios 中，不必使用 `SearchField` 和 `SuggestionListItem` `UIA` `NVDAObjects`，因為將透過 UIA 的 `controllerFor` 樣式公開輸入的內容和搜尋建議。 此特性現可透過 `behaviours.EditableText` 和 `NVDAObject` 分別調用。(#14222)
- 啟用 UIA 偵錯記錄類別時，現在會為 UIA 事件處理常式和公用程式產生明顯更多的記錄。(#14256)
- NVDAHelper 的建置標準已更新。(#13072)
  - 現在使用 C++20 標準，過去是 C++17。
  - 現在使用 `/permissive-` 編譯器標誌停用寬容行為，並設定 `/Zc` 編譯器選項以實現嚴格一致性。
- 某些 plugin 物件(如驅動或者附加元件)可在 NVDA Python 主控台取得更多詳細資訊。(#14463)
- 現在，NVDA 可完全使用 Visual Studio 2022進行編譯，不再需要 Visual Studio 2019 構建工具。(#14326)
- 為 NVDA 凍結提供更詳細的記錄，以協助偵錯。(#14309)
- 單例的 `braille._BgThread` 類 已被 `hwIo.ioThread.IoThread` 代替。(#14130)
  - 此類 `hwIo.bgThread` 的一個單獨的實例(在 NVDA 核心)為點顯器驅動提供執行緒安全的背景 I/O。
  - 這個類在設計上不是單例的，鼓勵附加元件作者在進行硬體 i/o 時建立自己的實例。
- 可以從 `winVersion.WinVersion.processorArchitecture` 屬性查詢電腦的處理器架構。(#14439)
- 新增擴充點。(#14503)
  - `inputCore.decide_executeGesture`
  - `tones.decide_beep`
  - `nvwave.decide_playWaveFile`
  - `braille.pre_writeCells`
  - `braille.filter_displaySize`
  - `braille.decide_enabled`
  - `braille.displayChanged`
  - `braille.displaySizeChanged`
- 可以在合成器驅動支援的設定上將 useConfig 設定為 False。(#14601)

#### API 重大變更

這些是會破壞 API 相容性的變更。 如果您的附加元件在更新至新 API 時發生問題，請開啟一個 GitHub issue。

- 變更了組態規範，相關的組態鍵已被刪除或修改：
  - `[documentFormatting]` 部分 (#14233)：
    - `reportLineIndentation` 是一個整數（0 到 3）而不是一個布林值
    - `reportLineIndentationWithTones` 已經被移除。
    - `reportBorderStyle` 和 `reportBorderColor` 已經被移除 並被替換為 `reportCellBorders`。
  - `[braille]` 部分 (#14233)：
    - `noMessageTimeout` 已經被移除，代替他的是一個 `showMessages` 的值。
    - `messageTimeout` 不能取值為 0，而是用 `showMessages` 的值來代替。
    - `autoTether` 已被刪除； `tetherTo` 現可以取值為“auto”。
  - `[keyboard]` 部分 (#14528)：
    - `useCapsLockAsNVDAModifierKey`、`useNumpadInsertAsNVDAModifierKey`、`useExtendedInsertAsNVDAModifierKey` 已經被移除。 而是被 `NVDAModifierKeys` 代替。
- `NVDAHelper.RemoteLoader64` 已經被移除且沒有可替代的方案。(#14449)
- `winAPI.sessionTracking` 的下列函數被移除且無對應的替代方案。(#14416, #14490)
  - `isWindowsLocked`
  - `handleSessionChange`
  - `unregister`
  - `register`
  - `isLockStateSuccessfullyTracked`
- 現無法透過設定 `braille.handler.enabled` 來啟用/停用點字處理常式。 要以程式設計方式停用點字處理常式，請將處理常式註冊到 `braille.handler.decide_enabled`。(#14503)
- 不再允許設定 `braille.handler.displaySize` 來變更點字處理常式的顯示大小。 要以程式設計方式更新 displaySize，請將處理常式註冊到 `braille.handler.filter_displaySize`。 有關如何執行此操作的示例，請參閱 `brailleViewer`。(#14503)
- `addonHandler.Addon.loadModule` 的用法發生了變化。(#14481)
  - `loadModule` 現在用點分割，而不是反斜線。 如用 "lib.example" 代替 "lib\example"。
  - `loadModule` 在無法載入模組或出現錯誤時引發異常，而不是在不提供有關原因的資訊的情況下靜默返回 `None`。
- 以下標誌已從 `appModules.foobar2000` 中刪除，沒有同等功能的替換。(#14570)
  - `statusBarTimes`
  - `parseIntervalToTimestamp`
  - `getOutputFormat`
  - `getParsingFormat`
- 以下類別不再是單例，其 get 方法已被移除。 `Example.get()` 已經變為 `Example()`。(#14248)
  - `UIAHandler.customAnnotations.CustomAnnotationTypesCommon`
  - `UIAHandler.customProps.CustomPropertiesCommon`
  - `NVDAObjects.UIA.excel.ExcelCustomProperties`
  - `NVDAObjects.UIA.excel.ExcelCustomAnnotationTypes`

#### 棄用

- `NVDAObjects.UIA.winConsoleUIA.WinTerminalUIA` 不推薦使用，將被棄用。(#14047)
- `config.addConfigDirsToPythonPackagePath` 已經被移動。 請用 `addonHandler.packaging.addDirsToPythonPackagePath` 代替。(#14350)
- `braille.BrailleHandler.TETHER_*` 均不推薦使用。 請用 `configFlags.TetherTo.*.value` 代替。(#14233)
- `utils.security.postSessionLockStateChanged` 不推薦使用。 請用 `utils.security.post_sessionLockStateChanged` 代替。(#14486)
- `NVDAObject.hasDetails`, `NVDAObject.detailsSummary`, `NVDAObject.detailsRole` 不推薦使用。 請用 `NVDAObject.annotations` 代替。(#14507)
- `keyboardHandler.SUPPORTED_NVDA_MODIFIER_KEYS` 不推薦使用，且無直接替代方案。 可以考慮用類 `config.configFlags.NVDAKey`。(#14528)
- `gui.MainFrame.evaluateUpdatePendingUpdateMenuItemCommand` 不推薦使用。 請用 `gui.MainFrame.SysTrayIcon.evaluateUpdatePendingUpdateMenuItemCommand` 代替。(#14523)

## 2022.4

此版本加入幾個新的按鍵指令，包括用於表格中讀出全部的指令。 在使用者指南中加入「快速入門指南」段落。 還有幾個錯誤修正。

eSpeak 及 LibLouis 皆已更新。 有新的中文、瑞典文、盧干達文及金揚萬答文點字表。

### 新功能

- 在使用者指南中加入「快速入門指南」。(#13934)
- 加入一個新指令來檢查目前焦點的鍵盤快捷鍵。(#13960)
  - 桌上型電腦：`Shift+數字鍵盤2`。
  - 筆記型電腦：`NVDA+ctrl+shift+.`。
- 加入新的指令，可在應用程式支援情況下，以頁移動檢閱游標。(#14021)
  - 移到上一頁：
    - 桌上型電腦：`NVDA+pageUp`。
    - 筆記型電腦：`NVDA+shift+pageUp`。
  - 移到下一頁：
    - 桌上型電腦：`NVDA+pageDown`。
    - 筆記型電腦：`NVDA+shift+pageDown`。
- 加入以下的表格指令。(#14070)
  - 向下讀出整欄：`NVDA+Ctrl+Alt+向下鍵`
  - 向右讀出整列：`NVDA+Ctrl+Alt+向右鍵`
  - 讀出整欄：`NVDA+Ctrl+Alt+向上鍵`
  - 讀出整列：`NVDA+Ctrl+Alt+向左鍵`
- 在 Microsoft Excel 中使用 UI Automation：NVDA 現在可在離開工作表上的表格時讀出提示。(#14165)
- 現在可以分開設定讀出表格的列及欄標題。(#14075)

### 變更

- eSpeak NG 更新至 1.52-dev commit `735ecdb8`。(#14060, #14079, #14118, #14203)
  - 修正使用中文時拉丁字元報讀的錯誤。(#12952, #13572, #14197)
- 更新 LibLouis 點字轉譯表至 3.23.0。(#14112)
  - 新增點字表：
    - 中國通用盲文 (簡體中文字)
    - 金揚萬答文書寫點字
    - 盧干達文書寫點字
    - 瑞典文未收縮點字
    - 瑞典文部分收縮點字
    - 瑞典文收縮點字
    - 中文 (中國) 現行盲文 (無聲調)(#14138)
- NVDA 使用者資料蒐集現在包含作業系統的架構。(#14019)

### 錯誤修正

- 當使用 Windows 封裝管理員 CLI (又名 winget) 更新 NVDA 時，NVDA 的發布版本不再被視為比安裝的任何 alpha 版本還新。(#12469)
- NVDA 現在可以正確地在 Java 應用程式中讀出分組方框。(#13962)
- 在 Bookworm、WordPad 或 NVDA 事件紀錄檢視器等應用程式中使用「讀出全部」期間，游標正確地跟隨讀出的文字。(#13420, #9179)
- 在使用 UI Automation 的程式中，部分勾選的核取方塊可以正確讀出。(#13975)
- 改進 Microsoft Visual Studio、Windows 終端機和其他基於 UI Automation 應用程式的效能及穩定性。(#11077, #11209)
  - 這些修正適用於 Windows 11 Sun Valley 2 (版本 22H2) 及更高版本。
  - 針對 UI Automation 事件及屬性變更的選擇性記錄現在預設啟用。
- 文字報讀、點字輸出及密碼隱藏現在可以在 Visual Studio 2022 的嵌入式 Windows 終端控製項中按預期執行。(#14194)
- NVDA 現在在使用多台顯示器時具備 DPI感知功能。 有一些修正針對使用高於 100% 或多個顯示器的 DPI 設定。 早於 Windows 10 1809 的 Windows 版本可能仍然存在問題。 為了使這些修正生效，與 NVDA 互動的應用程式也需要具有 DPI 感知功能。 請注意，Chrome 和 Edge 仍然存在已知問題。(#13254)
  - 視覺醒目提示外框在大多數應用程式中應可正確呈現。(#13370, #3875, #12070)
  - 觸控螢幕互動現在應適用於大多數應用程式。(#7083)
  - 滑鼠跟隨現在應適用於大多數應用程式。(#6722)
- 方向狀態變化 (橫向/直向) 現在在沒有改變時 (如更換螢幕) 會被忽略。(#14035)
- NVDA 將讀出拖移項目，，例如重新排列 Windows 10 開始功能表磚和 Windows 11 中的虛擬桌面。(#12271, #14081)
- 在進階設定中，「紀錄到錯誤時播放音效」選項現在可以在按下「還原為預設值」按鈕時正確還原為預設值。(#14149)
- NVDA 現在可以在 Java 應用程式中使用 NVDA+F10 鍵盤快速鍵選取文字。(#14163)
- 在 Microsoft Teams 的對話中使用上下方向鍵移動時，NVDA 將不再卡在功能表。(#14355)

### 開發者需要了解的變化

請參閱 開發者指南 以了解 NVDA 的 API 廢除與移除過程。

- 建立了 NVDA API 公告郵件清單。(#13999)
- NVDA 不再處理大多數 UIA 應用程式的 `textChange` 事件，因為這些事件會對性能產生極大的負面影響。(#11002, #14067)

#### 棄用

- `core.post_windowMessageReceipt` 已棄用，請用 `winAPI.messageWindow.pre_handleWindowMessage` 來代替。
- `winKernel.SYSTEM_POWER_STATUS` 已棄用並且不鼓勵使用，已移動到 `winAPI._powerTracking.SystemPowerStatus`。
- `winUser.SM_*` 常量已棄用，請用 `winAPI.winUser.constants.SystemMetrics` 來代替。

## 2022.3.3

這是一個小版本，用於修正 2022.3.2、2022.3.1 和 2022.3 中存在的問題。 此修正同時也解決了一個安全性問題。

### 安全性修正

- 防止未經驗證的使用者對系統進行可能的存取 (例如 NVDA Python 主控台)。 (GHSA-fpwc-2gxx-j9v7)

### 錯誤修正

- 修正了如果 NVDA 在 Windows 鎖定畫面沒有回應後可透過鎖定畫面存取使用者桌面的錯誤。(#14416)
- 修正了若 NVDA 在鎖定畫面時凍結，會導致 NVDA 表現異常，如同裝置仍處於鎖定狀態的錯誤。(#14416)
- 修正了 Windows「我忘記 PIN 碼」程序以及 Windows 更新/安裝體驗中的無障礙問題。(#14368)
- 修正了在某些 Windows 環境 (例如 Windows Server) 中嘗試安裝 NVDA 時發生的錯誤。(#14379)

### 開發者需要了解的變化

#### 棄用

- `utils.security.isObjectAboveLockScreen(obj)` 已被棄用，請使用 `obj.isBelowLockScreen`代替。(#14416)
- `winAPI.sessionTracking` 在 2023.1 中已被棄用並刪除。(#14416)
  - `isWindowsLocked`
  - `handleSessionChange`
  - `unregister`
  - `register`
  - `isLockStateSuccessfullyTracked`

## 2022.3.2

這是一個小型版本更新，用以修正 2022.3.1 版的回歸問題並處理一項安全性問題。

### 安全性修正

- 防止未經身份驗證的使用者可能存在的系統級存取。 (GHSA-3jj9-295f-h69w)

### 錯誤修正

- 修正了 2022.3.1 版中，某些功能在安全畫面上被停用的問題回歸。(#14286)
- 修正了 2022.3.1 版中，若 NVDA 在鎖定畫面上啟動，登入後某些功能會被停用的問題回歸。(#14301)

## 2022.3.1

這是一個小型版本更新，用以修正多項安全性問題。 請遵循負責任的披露原則像 Nv Access(info@nvaccess.org) 提交您發現的安全性問題；。

### 安全性修正

- 修正了可能將使用者權限提升至系統權限的漏洞。 (GHSA-q7c2-pgqm-vvw5)
- 修正了一個安全問題，該問題允許透過 NVDA 啟動時的競爭危害(race condition)，在鎖定畫面上存取 Python 主控台。 (GHSA-72mj-mqhj-qh4w)
- 修正了鎖定 Windows 時，語音檢視器文字會被快取的問題。 (GHSA-grvr-j2h8-3qm4)

### 錯誤修正

- 防止未經身份驗證的使用者在鎖定畫面改變語音和點字檢視器的設定。(GHSA-grvr-j2h8-3qm4)

## 2022.3

此版本的大部分更新內容是由 NVDA 開發社群所貢獻。 這包括延遲讀出字元的字詞解釋及改善 Windows 主控台支援。

此更新也包含一些錯誤修正。 值得注意的是，使用最新版本的 Adobe Acrobat/Reader 閱讀 pdf 文件時將不再當機。

更新 eSpeak 新支援三種語言：白俄羅斯語、盧森堡語及 Totontepec Mixe。

### 新功能

- 在使用 Windows 主控台的應用程式，包括命令提示字元、PowerShell、及在 Windows 11 版本 22H2 (Sun Valley 2) 及更高版本上適用於 Linux 的 Windows 子系統等中：
  - 大幅提高了效能和穩定性。 (#10964)
  - 當按 `control+f`` 搜尋文字時，檢閱游標會跟隨移動至找到的字串上。 (#11172)
  - 預設情況下停用讀出未出現在螢幕上的輸入文字 (例如密碼)。 它可以在 NVDA 的進皆設定中重新啟用。 (#11554)
  - 可以在不捲動主控視窗的情況下查看已捲動到螢幕之外的文字。 (#12669)
  - 提供更詳細的文字格式資訊。 (microsoft/terminal PR 10336)
- 在語音設定中新增可在一段延遲時間後讀出字詞解釋的選項。 (#13509)
- 在點字設定中新增選項來決定在向前/後捲動點顯器時是否中斷語音。(#2124)

### 變更

- 更新 eSpeak NG 至版本 1.52-dev commit `9de65fcb`。(#13295)
  - 新增語言：
    - 白俄羅斯文
    - 卢森堡文
    - 混合海地克裡奧爾文
- 當使用 UI Automation 處理 Microsoft Excel 工作表中的控制項時， NVDA 現在能夠讀出合併儲存格。 (#12843)
- 盡可能讀出詳細資料的正確種類，而不是只讀出「有詳細資料」，例如「有註解」。 (#13649)
- Windows 程式和功能中會顯示 NVDA 的安裝大小。 (#13909)

### 錯誤修正

- 當閱讀 pdf 文件時，Adobe Acrobat / Reader 64 位元不會再當機。(#12920)
  - 注意：要避免當機也需要安裝最新版本的 Adobe Acrobat / Reader 以避免當機。
- 字體大小的度量在 NVDA 中可被翻譯。(#13573)
- 對於 Java 應用程式，找不到視窗控制碼的 Java Access Bridge 事件會被忽略。 這會提高包括 IntelliJ IDEA 在內的某些 Java 應用程式的性能。(#13039)
- 讀出在 LibreOffice Calc 內選取的儲存格時更有效率，且在選取多個儲存格時不會導致 Calc 凍結。(#13232)
- 使用不同使用者登入 Windows 時， Microsoft Edge 的無障礙支援依然可用。(#13032)
- ESpeak 的加快語速關閉後，語速的下降不會在 99% 和 100% 之間橫跳。(#13876)
- 修正允許同時開啟兩個輸入手勢對話框的錯誤。(#13854)

### 開發者需要了解的變化

- 更新 Comtypes 版本到 1.1.11。(#12953)
- 在內建的 Windows 主控台 (`conhost.exe`) 包含 級別 2 或以上版本的 NVDA API (`FORMATTED`) ，或使用 Windows 11 version 22H2 (Sun Valley 2) 時， UIA 預設啟用。(#10964)
  - 可在 NVDA 進階設定中變更“Windows 主控台支援”選項來變更此設定。
  - 要想確認目前 Windows 主控台的 NVDA API 級別，可以在核取“啟用 UIA 支援(如果可用)”選項的前提下打開 Windows 主控台後按下 NVDA+f1 顯示的“NVDA 事件紀錄檢視器”輸出的紀錄裡檢視。
- 在 Chromium 中，即使 IA2 在 MSAA 為文件物件公開 `STATE_SYSTEM_BUSY`，緩衝區依然照常載入。(#13306)
- 建立了 `featureFlag` 的配置類，用來標誌實驗性功能。 如需瞭解詳情請看 `devDocs/featureFlag.md`。(#13859)

#### 棄用

在 2022.3 這個版本裡沒有棄用計畫。

## 2022.2.4

這是一個用來修正安全性問題的修補版本。

### 錯誤修正

- 修正了可以在鎖定畫面的事件紀錄檢視器中開啟 NVDA python 主控台的漏洞。 (GHSA-585m-rpvv-93qg)

## 2022.2.3

這是一個修正版本，僅用於修正 2022.2.2 中引入的有關 API 的意外破壞。

### 錯誤修正

- 修正了 NVDA 在進入安全桌面時沒有讀出“安全桌面”的錯誤。 這導致 NVDA remote 無法識別安全桌面。(#14094)

## 2022.2.2

這是一個修正版本，僅用於修正 2022.2.1 中引入的有關輸入手勢的錯誤。

### 錯誤修正

- 修正了輸入手勢不一定總是有效的錯誤。(#14065)

## 2022.2.1

這是一個小型版本更新，用以修正一項安全性問題。 請遵循負責任的披露原則像 Nv Access(info@nvaccess.org) 提交您發現的安全性問題；。

### 安全性修正

- 修復可能在鎖定畫面中執行 Python 主控台執行程式碼的漏洞。(GHSA-rmq3-vvhq-gp32)
- 修正可用物件導覽跳過鎖定畫面的漏洞。(GHSA-rmq3-vvhq-gp32)

### 開發者需要了解的變化

#### 棄用

這些棄用項目目前未排定移除時程。 在另行通知前，已棄用的別名將會保留。 請測試新的 API 並提供回饋。 對於附加元件作者，如果這些變更使 API 無法滿足您的需求，請開啟一個 GitHub Issue。

- `appModules.lockapp.LockAppObject` 需用 `NVDAObjects.lockscreen.LockScreenObject` 代替 (GHSA-rmq3-vvhq-gp32)
- `appModules.lockapp.AppModule.SAFE_SCRIPTS` 須用 `utils.security.getSafeScripts()` 代替。(GHSA-rmq3-vvhq-gp32)

## 2022.2

此版本更新包含了許多錯誤修正。 尤其是基於 Java 的應用程式、點字顯示器及 Windows 功能。

加入新的表格導覽指令。 Unicode CLDR 已更新。 更新 LibLouis，包含了新的德文點字表。

### 新功能

- 支援在 Microsoft Office 產品中與 Microsoft Loop 元件互動。(#13617)
- 加入新的表格導覽指令。(#957)
  - `control+alt+home/end` 移至第一/最後一欄。
  - `Ctrl+Alt+PageUp/PageDown` 移至第一/最後一列。
- 加入尚未指定手勢的指令，用來切換語言及方言模式。(#10253)

### 變更

- 更新 NSIS 至版本 3.08。(#9134)
- 更新 CLDR 至版本 41.0。(#13582)
- 更新 LibLouis 點字轉譯表至 3.22.0。 (#13775)
  - 新增點字表： 德文二級 (詳細)
- 新增「忙碌指示器」 (busy indicator) 控件之角色
- 當 NVDA 的動作無法被執行時，NVDA 會讀出來。(#13500)
  - 這包括在：
    - 使用 Microsoft Store 版本的 NVDA。
    - 在安全畫面中。
    - 在強制回應對話框中等待一個回應時。

### 錯誤修正

- 修正基於 Java 的應用程式內錯誤：
  - NVDA 會讀出唯讀狀態。(#13692)
  - NVDA 會正確讀出啟用/未啟用的狀態。(#10993)
  - NVDA 會讀出功能鍵快捷鍵。(#13643)
  - 在進度列上，NVDA 可以發出嗶嗶聲或讀出百分比。(#13594)
  - 當 NVDA 呈現給使用者時，不再錯誤刪除 widgets 中的文字。(#13102)
  - NVDA 會讀出切換按鈕的狀態。(#9728)
  - 當 Java 應用程式中包含多個視窗時，NVDA 會正確識別每個視窗。(#9184)
  - NVDA 會讀出索引標籤控制項的位置資訊。(#13744)
- 點字修正：
  - 修正當在 Mozilla rich edit 控製項中導覽文字時，點字輸出的問題，例如在 Thunderbird 中撰寫訊息。(#12542)
  - 當點字跟隨設為自動，且跟隨鼠標朗讀啟用並移動滑鼠時， 點字會跟著所朗讀的文字呈現。(#11519)
  - 使用文字檢閱指令時，可以使用捲動點顯器方式來查看內容。(#8682)
- NVDA 的安裝檔可以在具有特殊字元的路徑下正確執行。(#13270)
- 在 Firefox 中，當網頁上的 aria-rowindex、aria-colindex、aria-rowcount 或 aria-colcount 屬性無效時，NVDA 不再錯誤報讀。(#13405)
- 使用表格導覽遇到合併儲存格時，游標不在切換欄或列。(#7278)
- 當在 Adobe Reader 中閱讀無法互動的 pdf 時，表單欄位的類型與狀態 (如核取方塊、選擇鈕等) 可被讀出來。(#13285)
- 在安全模式下，NVDA 功能表中可以使用「重設組態為預設值」選項。(#13547)
- 當 NVDA 結束時，任何被鎖定的滑鼠鍵都會被解除，過去此情況可能會維持在鎖定的狀態。(#13410)
- Visual Studio 現在可以讀出行號。(#13604)
  - 要使讀出行號生效，必須同時在 Visual Studio及 NVDA 中設定呈現行號。
- Visual Studio 現在可正確讀出行縮排。(#13574)
- 在 Windows 10 及 11 中，NVDA 可再次讀出開始功能表搜尋結果的詳細訊息。(#13544)
- 在 Windows 10 及 11 小算盤版本 10.1908 及之後版本， NVDA 會讀出當按下更多指令時的結果，例如在科學模式下。(#13383)
- 在 Windows 11 中，使用滑鼠及觸控互動時，能夠導覽並與使用者介面元素互動， 如工作列及工作檢視。(#13506)
- 在 Windows 11 記事本，NVDA 會讀出狀態列內容。(#13688)
- 導覽物件的醒目提示現在會在啟動該功能時立即出現。(#13641)
- 修正在閱讀單一欄位的列表檢視項目時的錯誤。(#13659, #13735)
- 修正 eSpeak 在英文及法文間進行自動語言切換時，會變成英文 (英國) 及法文 (法國) 的錯誤。(#13727)
- 修正 OneCore 自動語言切換功能在嘗試切換到先前安裝的語言時的錯誤。(#13732)

### 開發者需要了解的變化

- 支援使用 Visual Studio 2022 (17.0) 編譯 NVDA 依賴項。 對於開發和發佈版本，仍使用 Visual Studio 2019 進行編譯。(#13033)
- 透過 accSelection 檢索選定子項的數量時， 可以正確處理由 `IAccessible::get_accSelection` 返回負子 ID 或 IDispatch 的情況。(#13277)
- 新的便利函數 `registerExecutableWithAppModule` 和 `unregisterExecutable` 已新增到 `appModuleHandler` 模組中。 該特性可用於使用多個可執行檔的單個 App Module。(#13366)

#### 棄用

這些是提議的重大 API 變更。 棄用的 API 在指定版本發佈前仍然可用。 如果未明確指定版本，則表明尚未確定移除計畫。 注意，會盡可能遵循刪除路線圖，但也可能會發生變化。 請測試新的 API 並提供回饋。 對於附加元件作者，如果這些變更使 API 無法滿足您的需求，請開啟一個 GitHub Issue。

- `appModuleHandler.NVDAProcessID` 已棄用，請改用 `globalVars.appPid`。(#13646)
- `gui.quit` 已棄用，請改用 `wx.CallAfter(mainFrame.onExitCommand, None)`。(#13498) -
- 以下 appModules 已被標記為已棄用。 要匯入其中任意一項請從替代模組中匯入。(#13366)

移除的模組名稱 | 替代模組
--- | ---
azuredatastudio | code
azuredatastudio-insiders | code
calculatorapp | calculator
code - insiders | code
commsapps | hxmail
dbeaver | eclipse
digitaleditionspreview | digitaleditions
esybraille | esysuite
hxoutlook | hxmail
miranda64 | miranda32
mpc-hc | mplayerc
mpc-hc64 | mplayerc
notepad++ | notepadPlusPlus
searchapp | searchui
searchhost | searchui
springtoolsuite4 | eclipse
sts | eclipse
teamtalk3 | teamtalk4classic
textinputhost | windowsinternal_composableshell_experiences_textinput_inputapp
totalcmd64 | totalcmd
win32calc | calc
winmail | msimn
zend-eclipse-php | eclipse
zendstudio | eclipse

## 2022.1

此更新包含了大幅改善 UIA 對於 MS Office 的支援。 對於 Windows 11 上的 Microsoft Office 16.0.15000 及更高的版本，NVDA 會預設使用 UI Automation 來處理 Microsoft Word 文件。 這相較於舊的物件模型處理，有顯著的效能提升。

在點顯器的驅動程式上也有改善，包括 Seika Notetaker, Papenmeier 及 HID Braille。 還有各種針對 Windows 11 的錯誤修正，包括計算機、主控台、終端機、郵件與表情符號面板等應用程式。

更新 eSpeak-NG 與 LibLouis，新增日文、德文與卡達隆尼亞文等點字表。

注意：

- 此更新會導致現有的附加元件不相容。

### 新功能

- 在 Windows 11 中啟用 UI Automation，支援讀出 MS Excel 中的附注。(#12861)
- 在 Windows 11 中新版的 Microsoft Word，透過 UI Automation，語音和點字會讀出有書籤、草稿註解或已解決的註解。(#12861)
- 使用新的 `--lang` 命令列參數可覆蓋 NVDA 設定的語言。(#10044)
- 對於未知或沒有任何附加元件使用的命令列參數，NVDA 會提出警告。(#12795)
- 在 Microsoft Word 中使用 UI Automation，NVDA 可以利用 mathPlayer 讀取並導覽 Office Math 方程式。(#12946)
  - 您必須執行 Microsoft Word 365/2016 build 14326 或更高版本。
  - MathType 方程式也必須手動轉換成 Office Math，先將它們選取起來，接著開啟快顯工能表，選擇 Equation options, Convert to Office Math。
- 讀出「有詳細資料」及其所對應的讀出詳細資料摘要之功能，現在在焦點模式中亦可使用。(#13106)
- 當透過藍牙或 USB 連接 Seika 點顯器時，可被自動偵測。(#13191, #13142)
  - 這適用於以下的裝置：MiniSeika (16, 24 方), V6, 與 V6Pro (40 方)
  - 手動選擇藍牙序列部也同樣被支援。
- 加入切換點字檢視器的指令，沒有預設手勢。(#13258)
- 加上在點顯器上切換同時按下多重組合鍵的指令。(#13152)
- 語音字典對話框中新增了「全部移除」的功能來一次移除所有字典內容。(#11802)
- 支援 Windows 11 小算盤。(#13212)
- 在 Windows 11 中的 Microsoft Word 並啟用 UI Automation，行號、章節號與版面配置列號現在能夠被讀出。(#13283, #13515)
- 對於 Windows 11 上的 Microsoft Office 16.0.15000 及更高的版本，NVDA 會預設使用 UI Automation 來處理 Microsoft Word 文件，這相較於舊的物件模型處理，有顯著的效能提升。(#13437)
  - 這包括 Microsoft Word 文件，以及 Microsoft Outlook 中讀取及撰寫訊息。

### 變更

- 更新 Espeak-ng 到 1.51-dev commit `7e5457f91e10`。(#12950)
- 更新 liblouis 點字轉譯表至 3.21.0。 (#13141, #13438)
  - 加入新的點字表：日文 (漢點字) 書寫點字表。
  - 加入新的德文六點電腦點字。
  - 增加卡達隆尼亞文一級點字表。(#13408)
- 在 LibreOffice Calc 7.3 及以上版本，NVDA 會讀出選取或合併儲存格。(#9310, #6897)
- 更新 Unicode Common Locale Data Repository (CLDR) 至 40.0。(#12999)
- `NVDA+數字鍵盤 Delete` 預設會讀出游標或焦點物件的位置。(#13060)
- `NVDA+Shift+數字鍵盤 Delete` 讀出檢閱游標的位置。(#13060)
- 對於 Freedom Scientific 點顯器，增加了切換組合鍵指令的預設綁定。(#13152)
- 使用讀出文字格式指令 (`NVDA+f`) 不會再讀出「基準線」。(#11815)
- 顯示長說明不再有預設指派的手勢。(#13380)
- 讀出詳細資料的摘要目前有預設快速鍵 (`NVDA+d`)。(#13380)
- 安裝 MathPlayer 後需要重新啟動 NVDA。(#13486)

### 錯誤修正

- 打開某些 Office 程式時，剪貼簿管理器將不在錯誤地取得焦點。(#12736)
- 若使用者將滑鼠的主按件從左鍵改換至右鍵， 在諸如網頁流覽器等應用程式中， NVDA 將不會偶爾出現按下右鍵彈出快顯功能表而非啟動項目的情況。(#12642)
- 針對諸如開啟了 UIA 的 Microsoft Word 等文字控制項，若將流覽游標移至最後一行，能夠正確讀出“底部”。(#12808)
- 在 64 位元版本的 Windows 下，NVDA 可以取得 system32 資料夾內的二進位檔案的應用程式名稱和版本。(#12943)
- 增強對終端程式輸出朗讀的一致性。(#12974)
  - 請注意，在某些情況下，在一行的中間插入或刪除字元時，插入點後面的字元可能會再次被讀出。
- 開啟 UIA 後，在 MS Word 中：流覽模式下的標題快速導覽將不會卡在文件的最後一個標題上，該標題也不會在 NVDA 的元素清單中顯示兩次。(#9540)
- 在 Windows 8 及後續版本中，只需按下快速鍵 NVDA+end(桌上型電腦) / NVDA+shift+end(筆記型電腦)，即可讀出檔案總管狀態列資訊。(#12845)
- 修正在 Skype 企業版聊天介面不會自動朗讀收到的訊息。(#9295)
- 在 Windows 11 上使用 SAPI5 語音合成器時，NVDA 現在可以再次進行音訊調整。(#12913)
- 在 Windows 10 小算盤中，NVDA 會讀出歷程記錄和記憶的標籤。(#11858)
- 捲動和定位等手勢，現在可再次搭配 HID 點字裝置使用。(#13228)
- Windows 11 郵件：在閱讀長郵件的過程中，在應用程式間切換過焦點之後，NVDA 的焦點仍可以停留在郵件的內文部分。(#13050)
- HID 點顯器：能夠通過點顯器輸入(諸如`空白鍵+第4點`)這類組合件，並成功實現相應功能。(#13326)
- 修正了同時開啟多個設定對話框的問題。(#12818)
- 修正了系統從休眠狀態恢復後部分 Focus Blue 點顯器停止回應的問題。(#9830)
- 在開啟讀出上標和下標的選項後，不再錯亂的讀出“基準線”。(#11078)
- 在 Windows 11 下，即使選取了表情符號，NVDA 在表情符號面板中的流覽體驗也不會受到影響。(#13104)
- 防止在使用 Windows 主控台和終端機時，發生重複報讀的錯誤。(#13261)
- 修正在諸如 Reaper 等 64 位元應用程式中，部分清單項目無法讀出的情況。(#8175)
- 在 Microsoft Edge 的下載管理器中，一旦包含最新下載項目的清單項目取得焦點，NVDA 會自動切換至焦點模式。(#13221)
- NVDA 將不再導致 64 位元版本的 Notepad++ 8.3 及以上版本的程式當機。(#13311)
- 即使啟用了文件保護模式，Adobe Reader 也不會在啟動時當機。(#11568)
- 修復了選取 Papenmeier 點顯器驅動導致 NVDA 當機的錯誤。(#13348)
- 在 Microsoft Word 中搭配 UIA 使用時：從空白表格儲存格移至有內容的儲存格，或從文件結尾移入現有內容時，不再會不適當地報讀頁碼和其他格式。(#13458, #13459)
- 當頁面在 Google Chrome 100 中載入時，NVDA 不再會無法報讀頁面標題並自動開始閱讀。(#13571)
- 在讀出指令鍵開啟的狀態下將 NVDA 組態重設為預設值時，NVDA 不再當機。(#13634)

### 開發者需要了解的變化

- 請注意：此版本會破壞附加元件 API 的相容性。附加元件需要重新測試，並更新其資訊清單。
- 儘管 NVDA 仍需要 Visual Studio 2019，但若同時安裝了較新版本的 Visual Studio (例如 2022)，建置應不再失敗。(#13033, #13387)
- 更新 SCons 版本到 4.3.0。(#13033)
- 更新 py2exe 版本到 0.11.1.0。(#13510)
- 以 `apiLevel` 替代被移除的 `NVDAObjects.UIA.winConsoleUIA.WinConsoleUIA.isImprovedTextRangeAvailable`。(#12955, #12660)
- 從 `sysTreeView32` 移除 `TVItemStruct`。(#12935)
- 從 Outlook 應用程式模組中移除 `MessageItem`。(#12935)
- `audioDucking.AUDIODUCKINGMODE_*` 常量現為一個 `DisplayStringIntEnum`. (#12926)
  - 其使用需被替換為 `AudioDuckingMode.*`
  - `audioDucking.audioDuckingModes` 被 `AudioDuckingMode.*.displayString` 所替代
- `audioDucking.ANRUS_ducking_*` 常量的使用需被 `ANRUSDucking.*` 所替代。(#12926)
- `synthDrivers.sapi5` 的變更 (#12927)：
  - `SPAS_*` 的使用需被 `SPAudioState.*` 所替代
  - `constants.SVSF*` 的使用需被 `SpeechVoiceSpeakFlags.*` 所替代
    - 注： 替代 `SVSFlagsAsync` 的是 `SpeechVoiceSpeakFlags.Async` 而不是 `SpeechVoiceSpeakFlags.lagsAsync`
  - `constants.SVE*` 的使用需被 `SpeechVoiceEvents.*` 所替代
- `soffice` 應用程式模組移除了以下函數和類 `JAB_OOTableCell`、`JAB_OOTable`、`gridCoordStringToNumbers`。(#12849)
- `core.CallCancelled` 現為 `exceptions.CallCancelled`。(#12940)
- `core` 和 `logHandler` 中所有以 RPC 開頭的常量被移至 `RPCConstants.RPC` 枚舉。(#12940)
- 建議應使用 `mouseHandler.doPrimaryClick` 和 `mouseHandler.doSecondaryClick` 函式來點擊滑鼠，以執行邏輯動作，例如啟用 (主要) 或次要 (顯示內容功能表)， 而非使用 `executeMouseEvent` 並明確指定滑鼠左鍵或右鍵。 這樣做可以確保程式碼能與 Windows 使用者交換主要滑鼠按鈕的設定保持一致。(#12642)
- 移除 `config.getSystemConfigPath`，未提供相應的替代項。(#12943)
- 移除 `shlobj.SHGetFolderPath`，請使用 `shlobj.SHGetKnownFolderPath` 代替。(#12943)
- `shlobj` 常數已被移除。已建立新的列舉 `shlobj.FolderId`，供 `SHGetKnownFolderPath` 使用。(#12943)
- `diffHandler.get_dmp_algo` 和 `diffHandler.get_difflib_algo` 分別為 `diffHandler.prefer_dmp` 和 `diffHandler.prefer_difflib` 所替代。(#12974)
- 移除 `languageHandler.curLang`，欲獲取目前 NVDA 的語言可用 `languageHandler.getLanguage()`。(#13082)
- appModule 中可實作一個 `getStatusBarText` 方法，用來自訂 NVDA 擷取狀態列文字的方式。(#12845)
- 移除 `globalVars.appArgsExtra`。(#13087)
  - 如果您的附加元件需要處理額外的命令列參數，詳細資訊請參閱 `addonHandler.isCLIParamKnown` 的說明文件以及開發者指南。
- UIA 處理常式模組及其他 UIA 支援模組，現在已成為 UIAHandler 套件的一部分。(#10916)
  - `UIAUtils` 現為 `UIAHandler.utils`
  - `UIABrowseMode` 現為 `UIAHandler.browseMode`
  - `_UIAConstants` 現為 `UIAHandler.constants`
  - `_UIACustomProps` 現為 `UIAHandler.customProps`
  - `_UIACustomAnnotations` 現為 `UIAHandler.customAnnotations`
- `IAccessibleHandler` 的 `IA2_RELATION_*` 常數已被 `IAccessibleHandler.RelationType` 列舉取代。(#13096)
  - 移除 `IA2_RELATION_FLOWS_FROM`
  - 移除 `IA2_RELATION_FLOWS_TO`
  - 移除 `IA2_RELATION_CONTAINING_DOCUMENT`
- 從 `languageHandler` 中移除 `LOCALE_SLANGUAGE`、 `LOCALE_SLIST` 以及 `LOCALE_SLANGDISPLAYNAME`，使用 `languageHandler.LOCALE` 的成員替代。(#12753)
- 已將 NVDA 的掛鉤函式庫從 Minhook 切換為 Microsoft Detours。此函式庫的掛鉤主要用於輔助顯示模型。(#12964)
- 移除 `winVersion.WIN10_RELEASE_NAME_TO_BUILDS`。(#13211)
- SCons 現在會警告，建議以與系統中邏輯處理器數量相同的任務數進行建置。 這能大幅縮短多核心系統上的建置時間。(#13226, #13371)
- 移除 `characterProcessing.SYMLVL_*` 常數，請使用 `characterProcessing.SymbolLevel.*` 替代。(#13248)
- 從附加元件管理員中移除函數 `loadState` 和 `saveState`，請使用 `addonHandler.state.load` 和 `addonHandler.state.save` 替代。。(#13245)
- 已將 NVDAHelper 的 UWP/OneCore 互動層從 C++/CX 移轉至 C++/WinRT。 (#10662)
- 現在必須透過子類別化才能使用 `DictionaryDialog`。(#13268)
- 不推薦使用`config.RUN_REGKEY`、 `config.NVDA_REGKEY`，請使用 `config.RegistryKey.RUN`、`config.RegistryKey.NVDA` 替代，在 2023 版軟體中，其將被移除。(#13242)
- 不推薦使用 `easeOfAccess.ROOT_KEY`、 `easeOfAccess.APP_KEY_PATH`，請使用 `easeOfAccess.RegistryKey.ROOT`、`easeOfAccess.RegistryKey.APP` 替代，在 2023 版軟體中，其將被移除。(#13242)
- `easeOfAccess.APP_KEY_NAME` 將在 2023 版軟體中被移除，不推薦使用。(#13242)
- `DictionaryDialog` 和 `DictionaryEntryDialog` 從 `gui.settingsDialogs` 移至 `gui.speechDict`。(#13294)
- IAccessible2 關係 被至於 IAccessible2 物件的開發者資訊中。(#13315)
- 移除 `languageHandler.windowsPrimaryLCIDsToLocaleNames`，使用 `languageHandler.windowsLCIDToLocaleName` 或 `winKernel.LCIDToLocaleName` 替代。(#13342)
- 推薦優先使用 UIA 物件的 `UIAAutomationId` 屬性，而不是 `cachedAutomationId`。(#13125, #11447)
  - 如果直接從元素中取得，可以使用`cachedAutomationId`。
- 移動 `NVDAObjects.window.scintilla.CharacterRangeStruct` 至 `NVDAObjects.window.scintilla.Scintilla.CharacterRangeStruct`。(#13364)
- 移除 bool 型的 `gui.isInMessageBox`，請使用 `gui.message.isModalMessageBoxActive` 函數替代。(#12984, #13376)
- `controlTypes` 已被拆分為多個子模組。(#12510, #13588)
  - `ROLE_*` 和 `STATE_*` 已被 `Role.*` 和 `State.*` 所取代。
  - 雖仍然有效，但應該棄用以下內容：
    - `ROLE_*` 和 `STATE_*` 應使用 `Role.*` 和 `State.*` 代替。
    - `roleLabels`、`stateLabels` 和 `negativeStateLabels` 的用法，例如 `roleLabels[ROLE_*]`，應替換為其對應的 `Role.*.displayString` 或 `State.*.negativeDisplayString`。
    - `processPositiveStates` 和 `processNegativeStates` 應使用 `processAndLabelStates` 代替。
- Excel 儲存格狀態常數 (`NVSTATE_*`) 現在是 `NvCellState` 列舉中的值，此列舉鏡像於 `NVDAObjects/window/excel.py` 中的 `NvCellState` 列舉，並透過 _nvCellStatesToStates 對應至 `controlTypes.State`。(#13465)
- `EXCEL_CELLINFO` 的結構成員 `state` 現為 `nvCellStates`。
- 移除 `mathPres.ensureInit`， MathPlayer 將隨 NVDA 的啟動而初始化。(#13486)

## 2021.3.5

這是一個小型版本更新，用以修正一項安全性問題。 請遵循負責任的披露原則像 Nv Access(info@nvaccess.org) 提交您發現的安全性問題；。

### 安全性修正

- 修正了安全通報 `GHSA-xc5m-v23f-pgr7` 中的漏洞。
  - 標點及符號讀音對話框在安全模式下被停用。

## 2021.3.4

這是一個小型版本更新，用以修正多項已回報的安全性問題。 請遵循負責任的披露原則像 Nv Access(info@nvaccess.org) 提交您發現的安全性問題；。

### 安全性修正

- 修正了安全通報 `GHSA-354r-wr4v-cx28` 中的漏洞。(#13488)
  - 當 NVDA 在安全模式下執行時，刪除“重新啟動並啟用偵錯記錄”的功能。
  - 移除了在安全模式下執行 NVDA 時的更新功能。
- 修正了安全通報 `GHSA-wg65-7r23-h6p9` 中的漏洞。(#13489)
  - 移除了在安全模式下開啟輸入手勢對話框的功能。
  - 移除了在安全模式下開啟預設、暫存及語音字典對話框的功能。
- 修正了安全通報 `GHSA-mvc8-5rv9-w3hx` 中的漏洞。(#13487)
  - wx GUI 檢查工具在安全模式下被停用。

## 2021.3.3

此版本與 2021.3.2 相同。 NVDA 2021.3.2 中存在一個錯誤——將版本標記成了 2021.3.1。 此版本將版本糾正為 2021.3.3。

## 2021.3.2

這是一個小型版本更新，用以修正多項已回報的安全性問題。 請遵循負責任的披露原則像 Nv Access(info@nvaccess.org) 提交您發現的安全性問題；。

### 錯誤修正

- 安全性修正：在 Windows 10 和 Windows 11 上禁止物件導覽到鎖定畫面之外。(#13328)
- 安全性修正：附加元件管理員對話框現在於安全畫面上會被停用。(#13059)
- 安全性修正：NVDA 內容說明現在於安全畫面上不再可用。(#13353)

## 2021.3.1

這是一個小型版本更新，用以修正 2021.3 版的多項問題。

### 變更

- 當有其他點字顯示器驅動程式可用時，新的 HID Braille 協定不再被優先選用。(#13153)
- 新的 HID Braille 協定可透過進階設定停用。(#13180)

### 錯誤修正

- 地標在點字輸出中再次以縮寫顯示。(#13158)
- 修正了使用藍牙時，Humanware Brailliant 和 APH Mantis Q40 點字顯示器自動偵測不穩定的問題。(#13153)

## 2021.3

此版本推出了對新的 HID Braille 規格的支援。 此規格旨在標準化對點字顯示器的支援，使其無需個別的驅動程式。 eSpeak-NG 和 LibLouis 皆已更新，包含新的俄文和文達文點字表。 現在可透過新的進階設定選項，在 NVDA 穩定版中啟用錯誤音效。 在 Word 中使用讀出全部時，會捲動檢視畫面以保持目前位置可見。 使用 UIA 搭配 Office 時，有許多改進。 其中一項 UIA 修正是，Outlook 現在會忽略訊息中更多類型的排版表格。

重要說明：

由於我們的安全性憑證更新，少數使用者在 NVDA 2021.2 檢查更新時會收到錯誤訊息。 NVDA 現在會請求 Windows 更新安全性憑證，以防止未來再發生此錯誤。 受影響的使用者需要手動下載此更新。

### 新功能

- 新增用於切換讀出儲存格框線樣式的輸入手勢。(#10408)
- 支援新的 HID 點字規格，用來使點顯器支援標準化。(#12523)
  - 支援此規格的裝置能夠讓 NVDA 自動偵測。
  - 關於 NVDA 實作此規格的技術細節，請參閱 https://github.com/nvaccess/nvda/blob/master/devDocs/hidBrailleTechnicalNotes.md
- 新增對 VisioBraille Vario 4 點字裝置的支援。(#12607)
- 使用任何版本的 NVDA 時都可以在(進階設定)中啟用錯誤通知。(#12672)
- 在 Windows 10 及更高版本中，當輸入搜尋字詞時，NVDA 將讀出自動建議的數量，如在設定及 Microsoft Store 等應用程式中。(#7330, #12758, #12790)
- 在 PowerShell 中，透過 Out-GridView 指令建立的網格控制項，現在支援表格導覽。(#12928)

### 變更

- Espeak-ng 已更新至 1.51-dev commit `74068b91bcd578bd7030a7a6cde2085114b79b44`. (#12665)
- 如果安裝的 OneCore 語音語言不支援 NVDA 的偏好語言，則 NVDA 將預設使用 eSpeak。(#10451)
- 如果 OneCore 語音持續無法使用，合成器將回復為 eSpeak。(#11544)
- 使用 `NVDA+end` 讀出狀態列時，檢閱游標不再會被移至其位置。 若您需要此功能，請在輸入手勢對話框的物件導覽類別中，為對應的功能指派一個手勢。(#8600)
- 當開啟一個已經開啟的設定對話框時，NVDA 會將焦點移到現有對話框上，而不會顯示錯誤。(#5383)
- 將 liblouis 點字轉譯表更新到 3.19.0。 (#12810)
  - 新增點字表：俄語一級點字、文達語一級點字、文達語二級點字
- 將語音的「標記內容」改為「醒目提示」；點字則從「mrkd」改為「hlght」。(#12892)
- 當對話框正在等待必要操作 (例如 確認/取消) 時，NVDA 不再會嘗試結束。(#12984)

### 錯誤修正

- 當 watchdog 正在復原時，使修飾鍵（如 Ctrl 或 Insert）狀態更加穩定。(#12609)
- 在某些系統 (例如 全新安裝的 Windows) 上，現在可以再次檢查 NVDA 更新。(#12729)
- 使用 UI Automation 時，NVDA 能正確讀出 Microsoft Word 中的空白表格儲存格。(#11043)
- 在網頁的 ARIA 資料網格儲存格中，Escape 鍵現在會被傳遞至網格，而不再會無條件地關閉焦點模式。(#12413)
- 修正了在 Chrome 中讀取表格的標題儲存格時，欄位名稱會被讀出兩次的問題。(#10840)
- 對於已定義其值之文字表示方式的 UIA 滑桿，NVDA 不再會報讀其數值。(現在，UIA ValuePattern 的優先級高於 RangeValuePattern)。(#12724)
- NVDA 不再總是將 UIA 滑桿的值視為百分比。
- 在 Windows 11 上，透過 UI Automation 存取 Microsoft Excel 儲存格時，其位置報讀功能再次恢復正常。(#12782)
- NVDA 不再會設定無效的 Python 語系。(#12753)
- 若一個已停用的附加元件被解除安裝後再重新安裝，它將會被重新啟用。(#12792)
- 修正了當附加元件資料夾被重新命名或其中有檔案被開啟時，更新或移除附加元件會發生錯誤的問題。(#12792, #12629)
- 透過 UI Automation 存取 Microsoft Excel 試算表控制項時，NVDA 不再會於選取單一儲存格時，進行多餘的報讀。(#12530)
- LibreOffice Writer 中更多的對話框文字現在會被自動讀取，例如確認對話框。(#11687)
- 現在，透過 UI Automation 在 Microsoft Word 中以瀏覽模式閱讀/導覽時，能確保文件始終捲動以使目前的瀏覽模式位置可見，且焦點模式下的插入點位置能正確反映瀏覽模式的位置。(#9611)
- 透過 UI Automation 在 Microsoft Word 中執行「讀出全部」時，文件現在會自動捲動，且插入點位置會被正確更新。(#9611)
- 在 Outlook 中閱讀郵件，且 NVDA 透過 UI Automation 存取訊息時，某些表格現在會被標示為排版表格，這表示它們預設將不再被讀出。(#11430)
- 修正了變更音訊裝置時一個罕見的錯誤。(#12620)
- 提高了在編輯區中，使用某些點字表輸入點字時的準確性。(#12667)
- 導覽 Windows 系統匣行事曆時，NVDA 會讀出完整的星期幾。(#12757)
- 在 Microsoft Word 中使用中文輸入法 (例如 台灣 - 微軟新速成) 時，向前及向後捲動點字顯示器，不再會錯誤地跳回原始插入點位置。(#12855)
- 透過 UIA 存取 Microsoft Word 文件時，現在可以再次使用 alt+向下鍵 / alt+向上鍵 逐句導覽。(#9254)
- 使用 UIA 存取 MS Word 時，現在會讀出段落縮排。(#12899)
- 使用 UIA 存取 MS Word 時，追蹤修訂指令及其他一些在地化指令現在會在 Word 中被讀出。(#12904)
- 修正了當「描述」與「內容」或「名稱」相符時，點字和語音會重複的問題。(#12888)
- 在啟用 UIA 的 MS Word 中，打字時播放拼字錯誤音效的時機更為準確。(#12161)
- 在 Windows 11 中，按下 Alt+Tab 切換程式時，NVDA 不再會讀出「窗格」。(#12648)
- 當未使用 UIA 存取文件時，現在支援 MS Word 中新的「新式註解」側邊追蹤窗格。按下 alt+f12 可在側邊追蹤窗格與文件之間移動。(#12982)

### 針對開發人員的變化

- 構建 NVDA 現在需要 Visual Studio 2019 16.10.4 或更高版本。 為符合正式建置環境，請更新 Visual Studio 以和 AppVeyor 目前使用的版本 保持同步。(#12728)
- 不在推薦使用 `NVDAObjects.UIA.winConsoleUIA.WinConsoleUIA.isImprovedTextRangeAvailable` ，且將在 版本 2022.1 時移除。(#12660)
  - 可使用 `apiLevel` 代替(請查看 `_UIAConstants.WinConsoleAPILevel` 的注釋取得詳情)。
- 源自 GDI 應用程式 (透過顯示模型) 的文字背景顏色透明度，現在已開放給附加元件或應用程式模組使用。(#12658)
- `LOCALE_SLANGUAGE`, `LOCALE_SLIST` 和 `LOCALE_SLANGDISPLAYNAME` 已被遷移到 languageHandler 中的 `LOCALE` 列舉。 他們依然可用，但將在 2022.1中刪除。(#12753)
- 函數 `addonHandler.loadState` 和 `addonHandler.saveState` 須在 2022.1 以前用其對應的 `addonHandler.state.save` 和 `addonHandler.state.load` 代替。(#12792)
- 現在可以在系統測試中檢查點字輸出。(#12917)

## 2021.2

此版本引入了對 Windows 11 的初步支援。 雖然 Windows 11 尚未發布，但此版本已在 Windows 11 預覽版上進行測試。 這包括對「螢幕簾幕」功能的重要修正(詳見重要說明部分)。 NVDA 中的 COM 註冊修復工具現在可以解決執行 NVDA 時的更多問題。 語音合成器 eSpeak 和點字轉譯表 LibLouis 也有了更新。 還有各種錯誤修正和改進，特別是點字的支援、Windows 終端機、小算盤、表情符號面板和剪貼簿歷程記錄等。

### 重要說明

由於 Windows 放大鏡 API 在新版系統中的變動，必須更新螢幕簾幕以支援最新版 Windows。 在 Windows 10 21H2 (10.0.19044) 或更高版本，使用 NVDA 2021.2 可以啟用螢幕簾幕功能。 這包括 Windows 10 預覽版和 Windows 11。 出於安全考量，在使用新版 Windows 時，請盡量借助視覺來確認螢幕簾幕是否生效。

### 新功能

- 對 ARIA 標記的實驗性支援：
  - 增加了一個指令來讀出具有 aria-details 屬性物件的詳細資訊。(#12364)
  - 進階設定中增加在瀏覽模式中讀出物件詳細資訊的選項。(#12439)
- 在 Windows 10 版本 1909 及更高版本 (包括 Windows 11) 中，NVDA 在檔案總管進行搜尋時將讀出搜尋建議的數量。(#10341, #12628)
- 在 Microsoft Word 中，NVDA 將在執行縮排時讀出其結果。(#6269)

### 變更

- Espeak-ng 更新到 1.51-dev commit `ab11439b18238b7a08b965d1d5a6ef31cbb05cbb`。 (#12449, #12202, #12280, #12568)
- 若啟用了文件格式設定中的文章選項，NVDA 會在內容後提示文章。(#11103)
- 將 liblouis 點字轉譯表更新到 3.18.0。 (#12526)
  - 新點字表：保加利亞語 1 級、緬甸語 1 級、緬甸語 2 級、哈薩克語 1 級、高棉語 1 級、北庫爾德語 0 級、塞佩迪 1 級、塞佩迪 2 級、塞索托 1 級、塞索托 2 級、塞茨瓦納 1 級、塞茨瓦納2級，韃靼1級，越南0級，越南2級，南越1級，科薩1級，科薩2級，雅庫特1級，祖魯1級，祖魯2級
- Windows 10 OCR 已被重新命名為 Windows OCR。(#12690)

### 錯誤修正

- 在 Windows 10 小算盤中，NVDA 可在點字顯示器上顯示算式。(#12268)
- 在 Windows 10 版本 1607 及更高版本上的終端程式中，在行中插入或刪除字元時，不再讀出右側的字元。(#3200)
  - Diff Match Patch 現在預設為啟用。(#12485)
- 點字輸入適用於以下點字表：阿拉伯語 2 級、西班牙語 2 級、烏爾都語 2 級、中文（中國、普通話）2 級。(#12541)
- COM 註冊修復工具現在可以解決更多問題，尤其是在 64 位元 Windows 上。(#12560)
- 改善 Nippon Telesoft 的 Seika Notetaker 點字裝置的按鈕處理。(#12598)
- 改善 Windows 表情符號面板和剪貼簿歷程記錄的報讀。(#11485)
- 更新孟加拉語字母的字元描述。(#12502)
- 當新的 NVDA 程序啟動時，NVDA 會安全退出。(#12605)
- 從選擇點顯器對話框中重新選擇 Handy Tech 點顯器驅動程式不再導致錯誤。(#12618)
- Windows 10.0.22000 或更高版本被識別為 Windows 11，而不是 Windows 10。(#12626)
- 已針對 10.0.22000 及其之前版本的 Windows 的螢幕簾幕支援進行了修正和測試。(#12684)
- 即使過濾輸入手勢時未顯示任何結果，輸入手勢設定對話框仍將繼續按預期運作。(#12673)
- 修正在某些情況下，未讀出子功能表的第一個功能表項目的錯誤。(#12624)

### 開發者需要了解的變化

- `characterProcessing.SYMLVL_*` 常數應該在 2022.1 之前使用其相等的 `SymbolLevel.*` 來替換。(#11856, #12636)
- `controlTypes` 已經被分割成不同的子模組，標記為 deprecation 的必須在 2022.1 之前替換。(#12510)
  - `ROLE_*` 和 `STATE_*` 常數應被替換為對應的 `Role.*` 和 `State.*`。
  - `roleLabels`, `stateLabels` 和 `negativeStateLabels` 已被棄用，用法如 `roleLabels[ROLE_*]` 應該用 `Role.*.displayString` 或 `State.*.negativeDisplayString` 代替。
  - `processPositiveStates` 和 `processNegativeStates` 已因棄用而移除。
- 在 Windows 10 的 1511 及更高版本（包括 Insider Preview），目前的 Windows 功能更新版本名稱從 Windows 登錄檔取得。(#12509)
- 棄用： `winVersion.WIN10_RELEASE_NAME_TO_BUILDS` 將在 2022.1 中被移除，沒有可直接替代的函數。(#12544)

## 2021.1

此版本包括新增了在 Excel 和 Chromium 瀏覽器中對 UIA 的可選擇性支援。 修正了數個語言的相關問題，以及在點字輸出中存取連結的問題。 Unicode CLDR、數學符號及 LibLouis 皆已更新。 此外，也包括許多錯誤修正與改進，包括在 Office、Visual Studio 和一些語言。

注意：

- 此更新會導致現有的附加元件不相容。
- 此版本也放棄了對Adobe Flash的支援。

### 新功能

- 初步支援在以 Chromium 為基礎的瀏覽器（如 Edge）中使用 UIA。(#12025)
- 可選擇的實驗性功能，在微軟 Excel 中使用 UIA。只推薦使用微軟 Excel 16.0.13522.10000 或更高版本的使用者啟用。(#12210)
- 在 NVDA Python 主控台的輸出窗格更容易瀏覽。(#9784)
  - alt+up/down jumps to the previous/next output result (add shift for selecting).
  - control+l clears the output pane.
- NVDA now reports the categories assigned to an appointment in Microsoft Outlook, if any. (#11598)
- Support for the Seika Notetaker braille display from Nippon Telesoft. (#11514)

### Changes

- In browse mode, controls can now be activated with braille cursor routing on their descriptor (ie. "lnk" for a link). This is especially useful for activating eg. check-boxes with no labels. (#7447)
- NVDA now prevents the user from performing Windows 10 OCR if screen curtain is enabled. (#11911)
- Updated Unicode Common Locale Data Repository (CLDR) to 39.0. (#11943, #12314)
- Added more mathematical symbols to the symbols dictionary. (#11467)
- The user guide, changes file, and key commands listing now have a refreshed appearance. (#12027)
- "Unsupported" now reported when attempting to toggle screen layout in applications that do not support it, such as Microsoft Word. (#7297)
- 'Attempt to cancel speech for expired focus events' option in the advanced settings panel now enabled by default. (#10885)
  - This behaviour can be disabled by setting this option to "No".
  - Web applications (E.G. Gmail) no longer speak outdated information when moving focus rapidly.
- Updated liblouis braille translator to 3.17.0. (#12137)
  - New braille tables: Belarusian literary braille, Belarusian computer braille, Urdu grade 1, Urdu grade 2.
- Support for Adobe Flash content has been removed from NVDA due to the use of Flash being actively discouraged by Adobe. (#11131)
- NVDA will exit even with windows still open, the exit process now closes all NVDA windows and dialogs. (#1740)
- The Speech Viewer can now be closed with `alt+F4` and has a standard close button for easier interaction with users of pointing devices. (#12330)
- The Braille Viewer now has a standard close button for easier interaction with users of pointing devices. (#12328)
- In the Elements List dialog, the accelerator key on the "Activate" button has been removed in some locales to avoid collision with an element type radio button label. When available, the button is still the default of the dialog and as such can still be invoked by simply pressing enter from the elements list itself. (#6167)

### Bug Fixes

- The list of messages in Outlook 2010 is once again readable. (#12241)
- In terminal programs on Windows 10 version 1607 and later, when inserting or deleting characters in the middle of a line, the characters to the right of the caret are no longer read out. (#3200)
  - This experimental fix must be manually enabled in NVDA's advanced settings panel by changing the diff algorithm to Diff Match Patch.
- In MS Outlook, inappropriate distance reporting when shift+tabbing from the message body to the subject field should not occur anymore. (#10254)
- In the Python Console, inserting a tab for indentation at the beginning of a non-empty input line and performing tab-completion in the middle of an input line are now supported. (#11532)
- Formatting information and other browseable messages no longer present unexpected blank lines when screen layout is turned off. (#12004)
- It is now possible to read comments in MS Word with UIA enabled. (#9285)
- Performance when interacting with Visual Studio has been improved. (#12171)
- Fix graphical bugs such as missing elements when using NVDA with a right-to-left layout. (#8859)
- Respect the GUI layout direction based on the NVDA language, not the system locale. (#638)
  - known issue for right-to-left languages: the right border of groupings clips with labels/controls. (#12181)
- The python locale is set to match the language selected in preferences consistently, and will occur when using the default language. (#12214)
- TextInfo.getTextInChunks no longer freezes when called on Rich Edit controls such as the NVDA log viewer. (#11613)
- It is once again possible to use NVDA in languages containing underscores in the locale name such as de_CH on Windows 10 1803 and 1809. (#12250)
- In WordPad, configuration of superscript/subscript reporting works as expected. (#12262)
- NVDA no longer fails to announce the newly focused content on a web page if the old focus disappears and is replaced by the new focus in the same position. (#12147)
- Strikethrough, superscript and subscript formatting for entire Excel cells are now reported if the corresponding option is enabled. (#12264)
- Fixed copying config during installation from a portable copy when default destination config directory is empty. (#12071, #12205)
- Fixed incorrect announcement of some letters with accents or diacritic when 'Say cap before capitals' option is checked. (#11948)
- Fixed the pitch change failure in SAPI4 speech synthesizer. (#12311)
- The NVDA installer now also honors the `--minimal` command line parameter and does not play the start-up sound, following the same documented behavior as an installed or portable copy NVDA executable. (#12289)
- In MS Word or Outlook, the table quick navigation key can now jump to layout table if "Include layout tables" option is enabled in Browse mode settings. (#11899)
- NVDA will no longer announce "↑↑↑" for emojis in particular languages. (#11963)
- Espeak now supports Cantonese and Mandarin again. (#10418)
- In the new Chromium based Microsoft Edge, text fields such as the address bar are now announced when empty. (#12474)
- Fix Seika Braille driver. (#10787)

### 針對開發人員的變化

- Note: this is an Add-on API compatibility breaking release. Add-ons will need to be re-tested and have their manifest updated.
- NVDA's build system now fetches all Python dependencies with pip and stores them in a Python virtual environment. This is all done transparently.
  - To build NVDA, SCons should continue to be used in the usual way. E.g. executing scons.bat in the root of the repository. Running `py -m SCons` is no longer supported, and `scons.py` has also been removed.
  - To run NVDA from source, rather than executing `source/nvda.pyw` directly, the developer should now use `runnvda.bat` in the root of the repository. If you do try to execute `source/nvda.pyw`, a message box will alert you this is no longer supported.
  - To perform unit tests, execute `rununittests.bat [<extra unittest discover options>]`
  - To perform system tests: execute `runsystemtests.bat [<extra robot options>]`
  - To perform linting, execute `runlint.bat <base branch>`
  - Please refer to readme.md for more details.
- The following Python dependencies have also been upgraded:
  - comtypes updated to 1.1.8.
  - pySerial updated to 3.5.
  - wxPython updated to 4.1.1.
  - Py2exe updated to 0.10.1.0.
- `LiveText._getTextLines` has been removed. (#11639)
  - Instead, override `_getText` which returns a string of all text in the object.
- `LiveText` objects can now calculate diffs by character. (#11639)
  - To alter the diff behaviour for some object, override the `diffAlgo` property (see the docstring for details).
- When defining a script with the script decorator, the 'allowInSleepMode' boolean argument can be specified to control if a script is available in sleep mode or not. (#11979)
- The following functions are removed from the config module. (#11935)
  - canStartOnSecureScreens - use config.isInstalledCopy instead.
  - hasUiAccess and execElevated - use them from the systemUtils module.
  - getConfigDirs - use globalVars.appArgs.configPath instead.
- Module level REASON_* constants are removed from controlTypes - please use controlTypes.OutputReason instead. (#11969)
- REASON_QUICKNAV has been removed from browseMode - use controlTypes.OutputReason.QUICKNAV instead. (#11969)
- `NVDAObject` (and derivatives) property `isCurrent` now strictly returns Enum class `controlTypes.IsCurrent`. (#11782)
  - `isCurrent` is no longer Optional, and thus will not return None.
    - When an object is not current `controlTypes.IsCurrent.NO` is returned.
- The `controlTypes.isCurrentLabels` mapping has been removed. (#11782)
  - Instead use the `displayString` property on a `controlTypes.IsCurrent` enum value.
    - For example: `controlTypes.IsCurrent.YES.displayString`.
- `winKernel.GetTimeFormat` has been removed - use `winKernel.GetTimeFormatEx` instead. (#12139)
- `winKernel.GetDateFormat` has been removed - use `winKernel.GetDateFormatEx` instead. (#12139)
- `gui.DriverSettingsMixin` has been removed - use `gui.AutoSettingsMixin`. (#12144)
- `speech.getSpeechForSpelling` has been removed - use `speech.getSpellingSpeech`. (#12145)
- Commands cannot be directly imported from speech as `import speech; speech.ExampleCommand()` or `import speech.manager; speech.manager.ExampleCommand()` - use `from speech.commands import ExampleCommand` instead. (#12126)
- `speakTextInfo` will no longer send speech through `speakWithoutPauses` if reason is `SAYALL`, as `SayAllHandler` does this manually now. (#12150)
- The `synthDriverHandler` module is no longer star imported into `globalCommands` and `gui.settingsDialogs` - use `from synthDriverHandler import synthFunctionExample` instead. (#12172)
- `ROLE_EQUATION` has been removed from controlTypes - use `ROLE_MATH` instead. (#12164)
- `autoSettingsUtils.driverSetting` classes are removed from `driverHandler` - please use them from `autoSettingsUtils.driverSetting`. (#12168)
- `autoSettingsUtils.utils` classes are removed from `driverHandler` - please use them from `autoSettingsUtils.utils`. (#12168)
- Support of `TextInfo`s that do not inherit from `contentRecog.BaseContentRecogTextInfo` is removed. (#12157)
- `speech.speakWithoutPauses` has been removed - please use `speech.speechWithoutPauses.SpeechWithoutPauses(speakFunc=speech.speak).speakWithoutPauses` instead. (#12195, #12251)
- `speech.re_last_pause` has been removed - please use `speech.speechWithoutPauses.SpeechWithoutPauses.re_last_pause` instead. (#12195, #12251)
- `WelcomeDialog`, `LauncherDialog` and `AskAllowUsageStatsDialog` are moved to the `gui.startupDialogs`. (#12105)
- `getDocFilePath` has been moved from `gui` to the `documentationUtils` module. (#12105)
- The gui.accPropServer module as well as the AccPropertyOverride and ListCtrlAccPropServer classes from the gui.nvdaControls module have been removed in favor of WX native support for overriding accessibility properties. When enhancing accessibility of WX controls, implement wx.Accessible instead. (#12215)
- Files in `source/comInterfaces/` are now more easily consumable by developer tools such as IDEs. (#12201)
- Convenience methods and types have been added to the winVersion module for getting and comparing Windows versions. (#11909)
  - isWin10 function found in winVersion module has been removed.
  - class winVersion.WinVersion is a comparable and order-able type encapsulating Windows version information.
  - Function winVersion.getWinVer has been added to get a winVersion.WinVersion representing the currently running OS.
  - Convenience constants have been added for known Windows releases, see winVersion.WIN* constants.
- IAccessibleHandler no longer star imports everything from IAccessible and IA2 COM interfaces - please use them directly. (#12232)
- TextInfo objects now have start and end properties which can be compared mathematically with operators such as < <= == != >= >. (#11613)
  - E.g. ti1.start <= ti2.end
  - This usage is now prefered instead of ti1.compareEndPoints(ti2,"startToEnd") <= 0
- TextInfo start and end properties can also be set to each other. (#11613)
  - E.g. ti1.start = ti2.end
  - This usage is prefered instead of ti1.SetEndPoint(ti2,"startToEnd")
- `wx.CENTRE_ON_SCREEN` and `wx.CENTER_ON_SCREEN` are removed, use `self.CentreOnScreen()` instead. (#12309)
- `easeOfAccess.isSupported` has been removed, NVDA only supports versions of Windows where this evaluates to `True`. (#12222)
- `sayAllHandler` has been moved to `speech.sayAll`. (#12251)
  - `speech.sayAll.SayAllHandler` exposes the functions `stop`, `isRunning`, `readObjects`, `readText`, `lastSayAllMode`.
  - `SayAllHandler.stop` also resets the `SayAllHandler` `SpeechWithoutPauses` instance.
  - `CURSOR_REVIEW` and `CURSOR_CARET` has been replaced with `CURSOR.REVIEW` and `CURSOR.CARET`.
- `speech.SpeechWithoutPauses` has been moved to `speech.speechWithoutPauses.SpeechWithoutPauses`. (#12251)
- `speech.curWordChars` has been renamed `speech._curWordChars`. (#12395)
- the following have been removed from `speech` and can be accessed through `speech.getState()`. These are readonly values now. (#12395)
  - speechMode
  - speechMode_beeps_ms
  - beenCanceled
  - isPaused
- to update `speech.speechMode` use `speech.setSpeechMode`. (#12395)
- the following have been moved to `speech.SpeechMode`. (#12395)
  - `speech.speechMode_off` becomes `speech.SpeechMode.off`
  - `speech.speechMode_beeps` becomes `speech.SpeechMode.beeps`
  - `speech.speechMode_talk` becomes `speech.SpeechMode.talk`
- `IAccessibleHandler.IAccessibleObjectIdentifierType` is now `IAccessibleHandler.types.IAccessibleObjectIdentifierType`. (#12367)
- The following in `NVDAObjects.UIA.WinConsoleUIA` have been changed (#12094)
  - `NVDAObjects.UIA.winConsoleUIA.is21H1Plus` renamed `NVDAObjects.UIA.winConsoleUIA.isImprovedTextRangeAvailable`.
  - `NVDAObjects.UIA.winConsoleUIA.consoleUIATextInfo` renamed to start class name with upper case.
  - `NVDAObjects.UIA.winConsoleUIA.consoleUIATextInfoPre21H1` renamed `NVDAObjects.UIA.winConsoleUIA.ConsoleUIATextInfoWorkaroundEndInclusive`
    - The implementation works around both end points being inclusive (in text ranges) before microsoft/terminal PR 4018
    - Workarounds for `expand`, `collapse`, `compareEndPoints`, `setEndPoint`, etc

## 2020.4

This release includes new Chinese Input methods, an update to Liblouis and the elements list (NVDA+f7) now works in focus mode. Context sensitive help is now available when pressing F1 in NVDA dialogs. Improvements to symbol pronunciation rules, speech dictionary, Braille message and skim reading. Bug fixes and improvements to Mail, Outlook, Teams, Visual Studio, Azure Data Studio, Foobar2000. On the web, there are improvements to Google Docs, and greater support for ARIA. Plus many other important bug fixes and improvements.

### New Features

- Pressing F1 inside NVDA dialogs will now open the help file to most relevant section. (#7757)
- Support for auto complete suggestions (IntelliSense) in Microsoft SQL Server Management Studio plus Visual Studio 2017 and higher. (#7504)
- Symbol pronunciation: Support for grouping in a complex symbol definition and support group references in a replacement rule making them simpler and more powerful. (#11107)
- Users are now notified when attempting to create Speech Dictionary entries with invalid regular expression substitutions. (#11407)
  - Specifically grouping errors are now detected.
- Added support for the new chinese Traditional Quick and Pinyin Input methods in Windows 10. (#11562)
- Tab headers are now considered form fields with quick navigation f key. (#10432)
- Added a command to toggle reporting of marked (highlighted) text; There is no default associated gesture. (#11807)
- Added the --copy-portable-config command line parameter that allows you to automatically copy the provided configuration to the user account when silently installing NVDA. (#9676)
- Braille routing is now supported with the Braille Viewer for mouse users, hover to route to a braille cell. (#11804)
- NVDA will now automatically detect the Humanware Brailliant BI 40X and 20X devices via both USB and Bluetooth. (#11819)

### Changes

- Updated liblouis braille translator to version 3.16.1:
  - Addresses multiple crashes
  - Adds Bashkir grade 1 Braille table
  - Adds Coptic 8 dot computer braille table
  - Adds Russian literary braille and Russian literary braille (detailed) tables
  - Adds Added Afrikaans grade 2 braille table
  - Removes the Russian grade 1 Braille table
- When reading with say all in browse mode, the find next and find previous commands do not stop reading anymore if Allow skim reading option is enabled; say all rather resumes from after the next or previous found term. (#11563)
- For HIMS braille displays F3 has been remapped to Space + dots 148. (#11710)
- Improvements to the UX of the "braille message timeout" and "Show messages indefinitely" options. (#11602)
- In web browsers and other applications that support browse mode, the Elements List dialog (NVDA+F7) can now be invoked when in focus mode. (#10453)
- Updates to ARIA live regions are now suppressed when reporting of dynamic content changes is disabled. (#9077)
- NVDA will now report "Copied to clipboard" before the copied text. (#6757)
- Presentation of graphical view table in disk management has been improved. (#10048)
- Labels for controls are now disabled (greyed out) when the control is disabled. (#11809)
- Updated CLDR emoji annotation to version 38. (#11817)
- The inbuilt "Focus Highlight" feature has been renamed "Vision Highlight". (#11700)

### Bug Fixes

- NVDA once again works correctly with edit fields when using the Fast Log Entry application. (#8996)
- Report elapsed time in Foobar2000 if no total time is available (e.g. when playing a live stream). (#11337)
- NVDA now honors the aria-roledescription attribute on elements in editable content in web pages. (#11607)
- 'list' is no longer announced on every line of a list in Google Docs or other editable content in Google Chrome. (#7562)
- When arrowing by character or word from one list item to another in editable content on the web, entering the new list item is now announced. (#11569)
- NVDA now reads the correct line when the caret is placed at the end of a link on the end of a list item in Google Docs or other editable content on the web. (#11606)
- On Windows 7, opening and closing the start menu from the desktop now sets focus correctly. (#10567)
- When "attempt to cancel expired focus events" is enabled, the title of the tab is now announced again when switching tabs in Firefox. (#11397)
- NVDA no longer fails to announce a list item after typing a character in a list when speaking with the SAPI5 Ivona voices. (#11651)
- It is again possible to use browse mode when reading emails in Windows 10 Mail 16005.13110 and later. (#11439)
- When using the SAPI5 Ivona voices from harposoftware.com, NVDA is now able to save configuration, switch synthesizers, and no longer will stay silent after restarting. (#11650)
- It is now possible to enter number 6 in computer braille from a braille keyboard on HIMS displays. (#11710)
- Major performance improvements in Azure Data Studio. (#11533, #11715)
- With "Attempt to Cancel speech for expired focus events" enabled the title of the NVDA Find dialog is announced again. (#11632)
- NVDA should no longer freeze when waking the computer and focus lands in a Microsoft Edge document. (#11576)
- It is no longer necessary to press tab or move focus after closing a context menu in MS Edge for browse mode to be functional again. (#11202)
- NVDA no longer fails to read items in list views within a 64-bit application such as Tortoise SVN. (#8175)
- ARIA treegrids are now exposed as normal tables in browse mode in both Firefox and Chrome. (#9715)
- A reverse search can now be initiated with 'find previous' via NVDA+shift+F3 (#11770)
- An NVDA script is no longer treated as being repeated if an unrelated key press happens in between the two executions of the script. (#11388)
- Strong and emphasis tags in Internet Explorer can again be suppressed from being reported by turning off Report Emphasis in NVDA's Document Formatting settings. (#11808)
- A freeze of several seconds experienced by a small amount of users when arrowing between cells in Excel should no longer occur. (#11818)
- In Microsoft Teams builds with version numbers like 1.3.00.28xxx, NVDA no longer fails reading messages in chats or Teams channels due to an incorrectly focused menu. (#11821)
- Text marked both as being a spelling and grammar error at the same time in Google Chrome will be appropriately announced as both a spelling and grammar error by NVDA. (#11787)
- When using Outlook (French locale), the shortcut for 'Reply all' (control+shift+R) works again. (#11196)
- In Visual Studio, IntelliSense tool tips that provide additional details about the currently selected IntelliSense item are now only reported once. (#11611)
- In Windows 10 Calculator, NVDA will not announce progress of calculations if speak typed characters is disabled. (#9428)
- NVDA no longer crashes when using English US grade 2 and expand to computer Braille at the cursor is on, when displaying certain content such as a URL in Braille. (#11754)
- It is again possible to report formatting information for the focused Excel cell using NVDA+F. (#11914)
- QWERTY input on Papenmeier braille displays that support it again works and no longer causes NVDA to randomly freeze. (#11944)
- In Chromium based browsers, several cases were solved where table navigation didn't work and NVDA didn't report the number of rows/columns of the table. (#12359)

### 針對開發人員的變化

- System tests can now send keys using spy.emulateKeyPress, which takes a key identifier that conforms to NVDA's own key names, and by default also blocks until the action is executed. (#11581)
- NVDA no longer requires the current directory to be the NVDA application directory in order to function. (#6491)
- The aria live politeness setting for live regions can now be found on NVDA Objects using the liveRegionPoliteness property. (#11596)
- It is now possible to define separate gestures for Outlook and Word document. (#11196)

## 2020.3

This release includes several large improvements to stability and performance particularly in Microsoft Office applications. There are new settings to toggle touchscreen support and graphics reporting. The existence of marked (highlighted) content can be reported in browsers, and there are new German braille tables.

### New Features

- You can now toggle reporting of graphics from NVDA's document formatting settings. Note that disabling this option will still read the alternative texts of graphics. (#4837)
- You can now toggle NVDA's touchscreen support. An option has been added to the Touch Interaction panel of NVDA's settings. The default gesture is NVDA+control+alt+t. (#9682)
- Added new German braille tables. (#11268)
- NVDA now detects read-only text UIA controls. (#10494)
- The existence of marked (highlighted) content is reported in both speech and braille in all web browsers. (#11436)
  - This can be toggled on and off by a new NVDA Document Formatting option for Highlighting.
- New emulated system keyboard keys can be added from NVDA's Input gestures dialog. (#6060)
  - To do this, press the add button after you selected the Emulated system keyboard keys category.
- Handy Tech Active Braille with joystick is now supported. (#11655)
- "Automatic focus mode for caret movement" setting is now compatible with disabling "Automatically set focus to focusable elements". (#11663)

### Changes

- The Report formatting script (NVDA+f) has now been changed to report the formatting at the system caret rather than at the review cursor position. To report formatting at the review cursor position now use NVDA+shift+f. (#9505)
- NVDA no longer automatically sets the system focus to focusable elements by default in browse mode, improving performance and stability. (#11190)
- CLDR updated from version 36.1 to version 37. (#11303)
- Updated eSpeak-NG to 1.51-dev, commit 1fb68ffffea4
- You can now utilize table navigation in list boxes with checkable list items when the particular list has multiple columns. (#8857)
- In the Add-ons manager, when prompted to confirm removal of an add-on, "No" is now the default. (#10015)
- In Microsoft Excel, the Elements List dialog now presents formulas in their localized form. (#9144)
- NVDA now reports the correct terminology for notes in MS Excel. (#11311)
- When using the "move review cursor to focus" command in browse mode, the review cursor is now set at the position of the virtual caret. (#9622)
- Information reported in browse mode, such as the formatting info with NVDA+F, are now displayed in a slightly bigger window centered on screen. (#9910)

### Bug Fixes

- NVDA now always speaks when navigating by word and landing on any single symbol followed by white space, whatever the verbosity settings. (#5133)
- In applications using QT 5.11 or newer, object descriptions are again reported. (#8604)
- When deleting a word with control+delete, NVDA no longer remains silent. (#3298, #11029)
  - Now the word to the right of the deleted word is announced.
- In general settings panel, the language list is now sorted correctly. (#10348)
- In the Input Gestures dialog, significantly improved performance while filtering. (#10307)
- You can now send Unicode characters beyond U+FFFF from a braille display. (#10796)
- NVDA will announce Open With dialog content in Windows 10 May 2020 Update. (#11335)
- A new experimental option in Advanced settings (Enable selective registration for UI Automation events and property changes) can provide major performance improvements in Microsoft Visual Studio and other UIAutomation based applications if enabled. (#11077, #11209)
- For checkable list items, the selected state is no longer announced redundantly, and if applicable, the unselected state is announced instead. (#8554)
- On Windows 10 May 2020 Update, NVDA now shows the Microsoft Sound Mapper when viewing output devices from synthesizer dialog. (#11349)
- In Internet Explorer, numbers are now announced correctly for ordered lists if the list does not start with 1. (#8438)
- In Google chrome, NVDA will now report not checked for all checkable controls (not just check boxes) that are currently not checked. (#11377)
- It is once again possible to navigate in various controls when NVDA's language is set to Aragonese. (#11384)
- NVDA should no longer sometimes freeze in Microsoft Word when rapidly arrowing up and down or typing characters with Braille enabled. (#11431, #11425, #11414)
- NVDA no longer appends nonexistent trailing space when copying the current navigator object to the clipboard. (#11438)
- NVDA no longer activates the Say All profile if there is nothing to read. (#10899, #9947)
- NVDA is no longer unable to read the features list in Internet Information Services (IIS) Manager. (#11468)
- NVDA now keeps the audio device open improving performance on some sound cards (#5172, #10721)
- NVDA will no longer freeze or exit when holding down control+shift+downArrow in Microsoft Word. (#9463)
- The expanded / collapsed state of directories in the navigation treeview on drive.google.com is now always reported by NVDA. (#11520)
- NVDA will auto detect the NLS eReader Humanware braille display via Bluetooth as its Bluetooth name is now "NLS eReader Humanware". (#11561)
- Major performance improvements in Visual Studio Code. (#11533)

### 針對開發人員的變化

- The GUI Helper's BoxSizerHelper.addDialogDismissButtons supports a new "separated" keyword argument, for adding a standard horizontal separator to dialogs (other than messages and single input dialogs). (#6468)
- Additional properties were added to app modules, including path for the executable (appPath), is a Windows Store app (isWindowsStoreApp), and machine architecture for the app (appArchitecture). (#7894)
- It is now possible to create app modules for apps hosted inside wwahost.exe on Windows 8 and later. (#4569)
- A fragment of the log can now be delimited and then copied to clipboard using NVDA+control+shift+F1. (#9280)
- NVDA-specific objects that are found by Python's cyclic garbage collector are now logged when being deleted by the collector to aide in removing reference cycles from NVDA. (#11499)
  - The majority of NVDA's classes are tracked including NVDAObjects, appModules, GlobalPlugins, SynthDrivers, and TreeInterceptors.
  - A class that needs to be tracked should inherit from garbageHandler.TrackedObject.
- Significant debug logging for MSAA events can be now enabled in NVDA's Advanced settings. (#11521)
- MSAA winEvents for the currently focused object are no longer filtered out along with other events if the event count for a given thread is exceeded. (#11520)

## 2020.2

Highlights of this release include support for a new braille display from Nattiq, better support for ESET antivirus GUI and Windows Terminal, performance improvements in 1Password, and with Windows OneCore synthesizer. Plus many other important bug fixes and improvements.

### New Features

- Support for new braille displays:
  - Nattiq nBraille (#10778)
- Added script to open NVDA configuration directory (no default gesture). (#2214)
- Better support for ESET antivirus GUI. (#10894)
- Added support for Windows Terminal. (#10305)
- Added a command to report the active configuration profile (no default gesture). (#9325)
- Added a command to toggle reporting of subscripts and superscripts (no default gesture). (#10985)
- Web applications (E.G. Gmail) no longer speak outdated information when moving focus rapidly. (#10885)
  - This experimental fix must be manually enabled via the 'Attempt to cancel speech for expired focus events' option in the advanced settings panel.
- Many more symbols have been added to the default symbols dictionary. (#11105)

### Changes

- Updated liblouis braille translator from 3.12 to 3.14.0. (#10832, #11221)
- The reporting of superscripts and subscripts is now controlled separately to the reporting of font attributes. (#10919)
- Due to changes made in VS Code, NVDA no longer disables browse mode in Code by default. (#10888)
- NVDA no longer reports "top" and "bottom" messages when moving the review cursor directly to the first or last line of the current navigator object with the move to top and move to bottom review cursor scripts respectively. (#9551)
- NVDA no longer reports "left" and "right" messages when directly moving the review cursor to the first or last character of the line for the current navigator object with the move to beginning of line and move to end of line review cursor scripts respectively. (#9551)

### Bug Fixes

- NVDA now starts correctly when the log file cannot be created. (#6330)
- In recent releases of Microsoft Word 365, NVDA will no longer announce "delete back word" when Control+Backspace is pressed while editing a document. (#10851)
- In Winamp, NVDA will once again announce toggle status of shuffle and repeat. (#10945)
- NVDA is no longer extremely sluggish when moving within the list of items in 1Password. (#10508)
- The Windows OneCore speech synthesizer no longer lags between utterances. (#10721)
- NVDA no longer freezes when you open the context menu for 1Password in the system notification area. (#11017)
- In Office 2013 and older:
  - Ribbons are announced when focus moves to them for the first time. (#4207)
  - Context menu items are once again reported properly. (#9252)
  - Ribbon sections are consistently announced when navigating with Control+arrows. (#7067)
- In browse mode in Mozilla Firefox and Google Chrome, text no longer incorrectly appears on a separate line when web content uses CSS display: inline-flex. (#11075)
- In browse mode with Automatically set system focus to focusable elements disabled, it is now possible to activate elements that aren't focusable.
- In browse mode with Automatically set system focus to focusable elements disabled, it is now possible to activate elements reached by pressing the tab key. (#8528)
- In browse mode with Automatically set system focus to focusable elements disabled, activating certain elements no longer clicks in an incorrect location. (#9886)
- NVDA error sounds are no longer heard when accessing DevExpress text controls. (#10918)
- The tool-tips of the icons in the system tray are no longer reported upon keyboard navigation if their text is equal to the name of the icons, to avoid double announcing. (#6656)
- In browse mode with 'Automatically set system focus to focusable elements' disabled, switching to focus mode with NVDA+space now focuses the element under the caret. (#11206)
- It is once again possible to check for NVDA updates on certain systems; e.g. clean Windows installs. (#11253)
- Focus is not moved in Java application when the selection is changed in an unfocused tree, table or list. (#5989)

### 針對開發人員的變化

- execElevated and hasUiAccess have moved from config module to systemUtils module. Usage via config module is deprecated. (#10493)
- Updated configobj to 5.1.0dev commit f9a265c4. (#10939)
- Automated testing of NVDA with Chrome and a HTML sample is now possible. (#10553)
- IAccessibleHandler has been converted into a package, OrderedWinEventLimiter has been extracted to a module and unit tests added (#10934)
- Updated BrlApi to version 0.8 (BRLTTY 6.1). (#11065)
- Status bar retrieval may now be customized by an AppModule. (#2125, #4640)
- NVDA no longer listens for IAccessible EVENT_OBJECT_REORDER. (#11076)
- A broken ScriptableObject (such as a GlobalPlugin missing a call to its base class' init method) no longer breaks NVDA's script handling. (#5446)

## 2020.1

Highlights of this release include support for several new braille displays from HumanWare and APH, plus many other important bug fixes such as the ability to again read math in Microsoft Word using MathPlayer / MathType.

### New Features

- The currently selected item in listboxes is again presented in browse mode in Chrome, similar to NVDA 2019.1. (#10713)
- You can now perform right mouse clicks on touch devices by doing a one finger tap and hold. (#3886)
- Support for New braille displays: APH Chameleon 20, APH Mantis Q40, HumanWare BrailleOne, BrailleNote Touch v2, and NLS eReader. (#10830)

### Changes

- NVDA will prevent the system from locking or going to sleep when in say all. (#10643)
- Support for out-of-process iframes in Mozilla Firefox. (#10707)
- Updated liblouis braille translator to version 3.12. (#10161)

### Bug Fixes

- Fixed NVDA not announcing Unicode minus symbol (U+2212). (#10633)
- When installing add-on from add-ons manager, names of files and folders in the browse window are no longer reported twice. (#10620, #2395)
- In Firefox, when loading Mastodon with the advanced web interface enabled, all timelines now render correctly in browse mode. (#10776)
- In browse mode, NVDA now reports "not checked" for unchecked check boxes where it sometimes didn't previously. (#10781)
- ARIA switch controls no longer report confusing information such as "not pressed checked" or "pressed checked". (#9187)
- SAPI4 voices should no longer refuse to speak certain text. (#10792)
- NVDA can again read and interact with math equations in Microsoft Word. (#10803)
- NVDA will again announce text being unselected in browse mode if pressing an arrow key while text is selected. (#10731).
- NVDA no longer exits if there is an error initializing eSpeak. (#10607)
- Errors caused by unicode in translations for shortcuts no longer stop the installer, mitigated by falling back to the English text. (#5166, #6326)
- Arrowing out and away from lists and tables in sayAll with skim reading enabled no longer continuously announces exiting the list or table. (#10706)
- Fix mouse tracking for some MSHTML elements in Internet Explorer. (#10736)

### 針對開發人員的變化

- Developer documentation is now build using sphinx. (#9840)
- Several speech functions have been split into two. (#10593) The speakX version remains, but now depends on a getXSpeech function which returns a speech sequence.
  - speakObjectProperties now relies on getObjectPropertiesSpeech
  - speakObject now relies on getObjectSpeech
  - speakTextInfo now relies on getTextInfoSpeech
  - speakWithoutPauses has been converted into a class, and refactored, but should not break compatibility.
  - getSpeechForSpelling is deprecated (though still available) use getSpellingSpeech instead. Private changes that should not affect addon developers:
  - _speakPlaceholderIfEmpty is now _getPlaceholderSpeechIfTextEmpty
  - _speakTextInfo_addMath is now _extendSpeechSequence_addMathForTextInfo
- Speech 'reason' has been converted to an Enum, see controlTypes.OutputReason class. (#10703)
  - Module level 'REASON_*' constants are deprecated.
- Compiling NVDA dependencies now requires Visual Studio 2019 (16.2 or newer). (#10169)
- Updated SCons to version 3.1.1. (#10169)
- Again allow behaviors._FakeTableCell to have no location defined (#10864)

## 2019.3

NVDA 2019.3 is a very significant release containing many under-the-hood changes including the upgrade of Python 2 to Python 3, and a major re-write of NVDA's speech subsystem. Although these changes do break compatibility with older NVDA add-ons, the upgrade to Python 3 is necessary for security, and the changes to speech allow for some exciting innovations in the near future. Other highlights in this release include 64 bit support for Java VMs, Screen Curtain and Focus Highlight functionality, support for more braille displays and a new Braille viewer, and many many other bug fixes.

### New Features

- The accuracy of the move mouse to navigator object command has been improved in text fields in Java applications. (#10157)
- Added support for the following Handy Tech Braille displays (#8955):
  - Basic Braille Plus 40
  - Basic Braille Plus 32
  - Connect Braille
- All user-defined gestures can now be removed via a new "Reset to factory defaults" button in the Input Gestures dialog. (#10293)
- Font reporting in Microsoft Word now includes if text is marked as hidden. (#8713)
- Added a command to move the review cursor to the position previously set as start marker for selection or copy: NVDA+shift+F9. (#1969)
- In Internet Explorer, Microsoft Edge and recent versions of Firefox and Chrome, landmarks are now reported in focus mode and object navigation. (#10101)
- In Internet Explorer, Google Chrome and Mozilla Firefox, You can now navigate by article and grouping using quick navigation scripts. These scripts are unbound by default and can be assigned in the Input Gestures dialog when the dialog is opened from a browse mode document. (#9485, #9227)
  - Figures are also reported. They are considered objects and therefore navigable with the o quick navigation key.
- In Internet Explorer, Google Chrome and Mozilla Firefox, article elements are now reported with object navigation, and optionally in browse mode if turned on in Document Formatting settings. (#10424)
- Added screen curtain, which when enabled, makes the whole screen black on Windows 8 and later. (#7857)
  - Added a script to enable screen curtain (until next restart with one press, or always while NVDA is running with two presses), no default gesture is assigned.
  - Can be enabled and configured via the 'vision' category in NVDA's settings dialog.
- Added screen highlight functionality to NVDA. (#971, #9064)
  - Highlighting of the focus, navigator object, and browse mode caret position can be enabled and configured via the 'vision' category in NVDA's settings dialog.
  - Note: This feature is incompatible with the focus highlight add-on, however, the add-on can still be used while the built-in highlighter is disabled.
- Added Braille Viewer tool, allows viewing braille output via an on-screen window. (#7788)

### Changes

- The user guide now describes how to use NVDA in the Windows Console. (#9957)
- Running nvda.exe now defaults to replacing an already running copy of NVDA. The -r|--replace command line parameter is still accepted, but ignored. (#8320)
- On Windows 8 and later, NVDA will now report product name and version information for hosted apps such as apps downloaded from Microsoft Store using information provided by the app. (#4259, #10108)
- When toggling track changes on and off with the keyboard in Microsoft Word, NVDA will announce the state of the setting. (#942)
- The NVDA version number is now logged as the first message in the log. This occurs even if logging has been disabled from the GUI. (#9803)
- The settings dialog no longer allows for changing the configured log level if it has been overridden from the command line. (#10209)
- In Microsoft Word, NVDA now announces the display state of non printable characters when pressing the toggle shortcut Ctrl+Shift+8 . (#10241)
- Updated Liblouis braille translator to commit 58d67e63. (#10094)
- When CLDR characters (including emojis) reporting is enabled, they are announced at all punctuation levels. (#8826)
- Third party python packages included in NVDA, such as comtypes, now log their warnings and errors to the NVDA log. (#10393)
- Updated Unicode Common Locale Data Repository emoji annotations to version 36.0. (#10426)
- When focussing a grouping in browse mode, the description is now also read. (#10095)
- The Java Access Bridge is now included with NVDA to enable access to Java applications, including for 64 bit Java VMs. (#7724)
- If the Java Access Bridge is not enabled for the user, NVDA automatically enables it at NVDA startup. (#7952)
- Updated eSpeak-NG to 1.51-dev, commit ca65812. (#10581)

### Bug Fixes

- Emoji and other 32 bit unicode characters now take less space on a braille display when they are shown as hexadecimal values. (#6695)
- In Windows 10, NVDA will announce tooltips from universal apps if NVDA is configured to report tooltips in object presentation dialog. (#8118)
- On Windows 10 Anniversary Update and later, typed text is now reported in Mintty. (#1348)
- On Windows 10 Anniversary Update and later, output in the Windows Console that appears close to the caret is no longer spelled out. (#513)
- Controls in Audacitys compressor dialog are now announced when navigating the dialog. (#10103)
- NVDA no longer treats spaces as words in object review in Scintilla based editors such as Notepad++. (#8295)
- NVDA will prevent the system from entering sleep mode when scrolling through text with braille display gestures. (#9175)
- On Windows 10, braille will now follow when editing cell contents in Microsoft Excel and in other UIA text controls where it was lagging behind. (#9749)
- NVDA will once again report suggestions in the Microsoft Edge address bar. (#7554)
- NVDA is no longer silent when focusing an HTML tab control header in Internet Explorer. (#8898)
- In Microsoft Edge based on EdgeHTML, NVDA will no longer play search suggestion sound when the window becomes maximized. (#9110, #10002)
- ARIA 1.1 combo boxes are now supported in Mozilla Firefox and Google Chrome. (#9616)
- NVDA will no longer report content of visually hidden columns for list items in SysListView32 controls. (#8268)
- The settings dialog no longer shows "info" as the current log level when in secure mode. (#10209)
- In Start menu for Windows 10 Anniversary Update and later, NVDA will announce details of search results. (#10340)
- In browse mode, if moving the cursor or using quick navigation causes the document to change, NVDA no longer speaks incorrect content in some cases. (#8831, #10343)
- Some bullet names in Microsoft Word have been corrected. (#10399)
- In Windows 10 May 2019 Update and later, NVDA will once again announce first selected emoji or clipboard item when emoji panel and clipboard history opens, respectively. (#9204)
- In Poedit, it is once again possible to view some translations for right to left languages. (#9931)
- In the Settings app in Windows 10 April 2018 Update and later, NVDA will no longer announce progress bar information for volume meters found in the System/Sound page. (#10412)
- Invalid regular expressions in speech dictionaries no longer completely break speech in NVDA. (#10334)
- When reading bulleted items in Microsoft Word with UIA enabled, the bullet from the next list item is no longer inappropriately announced. (#9613)
- Some rare braille translation issues and errors with liblouis have been resolved. (#9982)
- Java applications started before NVDA are now accessible without the need to restart the Java app. (#10296)
- In Mozilla Firefox, when the focused element becomes marked as current (aria-current), this change is no longer spoken multiple times. (#8960)
- NVDA will now treat certain composit unicode characters such as e-acute as one single character when moving through text. (#10550)
- Spring Tool Suite Version 4 is now supported. (#10001)
- Don't double speak name when aria-labelledby relation target is an inner element. (#10552)
- On Windows 10 version 1607 and later, typed characters from Braille keyboards are spoken in more situations. (#10569)
- When changing the audio output device, tones played by NVDA will now play through the newly selected device. (#2167)
- In Mozilla Firefox, moving focus in browse mode is faster. This makes moving the cursor in browse mode more responsive in many cases. (#10584)

### 針對開發人員的變化

- Updated Python to 3.7. (#7105)
- Updated pySerial to version 3.4. (#8815)
- Updated wxPython to 4.0.3 to support Python 3.5 and later. (#9630)
- Updated six to version 1.12.0. (#9630)
- Updated py2exe to version 0.9.3.2 (in development, commit b372a8e from albertosottile/py2exe#13). (#9856)
- Updated UIAutomationCore.dll comtypes module to version 10.0.18362. (#9829)
- The tab-completion in the Python console only suggests attributes starting with an underscore if the underscore is first typed. (#9918)
- Flake8 linting tool has been integrated with SCons reflecting code requirements for Pull Requests. (#5918)
- As NVDA no longer depends on pyWin32, modules such as win32api and win32con are no longer available to add-ons. (#9639)
  - win32api calls can be replaced with direct calls to win32 dll functions via ctypes.
  - win32con constants should be defined in your files.
- The "async" argument in nvwave.playWaveFile has been renamed to "asynchronous". (#8607)
- speakText and speakCharacter methods on synthDriver objects are no longer supported.
  - This functionality is handled by SynthDriver.speak.
- SynthSetting classes in synthDriverHandler have been removed. Now use driverHandler.DriverSetting classes instead.
- SynthDriver classes should no longer expose index via the lastIndex property.
  - Instead, they should notify the synthDriverHandler.synthIndexReached action with the index, once all previous audio has finished playing before that index.
- SynthDriver classes must now notify the synthDriverHandler.synthDoneSpeaking action, once all audio from a SynthDriver.speak call has completed playing.
- SynthDriver classes must support the speech.PitchCommand in their speak method, as changes in pitch for speak spelling now depends on this functionality.
- The speech function getSpeechTextForProperties has been renamed to getPropertiesSpeech. (#10098)
- The braille function getBrailleTextForProperties has been renamed to getPropertiesBraille. (#10469)
- Several speech functions have been changed to return speech sequences. (#10098)
  - getControlFieldSpeech
  - getFormatFieldSpeech
  - getSpeechTextForProperties now called getPropertiesSpeech
  - getIndentationSpeech
  - getTableInfoSpeech
- Added a textUtils module to simplify string differences between Python 3 strings and Windows unicode strings. (#9545)
  - See the module documentation and textInfos.offsets module for example implementations.
- Deprecated functionality now removed. (#9548)
  - AppModules removed:
    - Windows XP sound recorder.
    - Klango Player, which is abandoned software.
  - configobj.validate wrapper removed.
    - New code should use from configobj import validate instead of import validate
  - textInfos.Point and textInfos.Rect replaced by locationHelper.Point and locationHelper.RectLTRB respectively.
  - braille.BrailleHandler._get_tether and braille.BrailleHandler.set_tether have been removed.
  - config.getConfigDirs has been removed.
  - config.ConfigManager.getConfigValidationParameter has been replaced by getConfigValidation
  - inputCore.InputGesture.logIdentifier property has been removed.
    - Use _get_identifiers in inputCore.InputGesture instead.
  - synthDriverHandler.SynthDriver.speakText/speakCharacter have been removed.
  - Removed several synthDriverHandler.SynthSetting classes.
    - Previously kept for backwards compatibility (#8214), now considered obsolete.
    - Drivers that used the SynthSetting classes should be updated to use the DriverSetting classes.
  - Some legacy code has been removed, particularly:
    - Support for the Outlook pre 2003 message list.
    - An overlay class for the classic start menu, only found in Windows Vista and earlier.
    - Dropped support for Skype 7, as it is definitely not working any more.
- Added a framework to create vision enhancement providers; modules that can change screen contents, optionally based on input from NVDA about object locations. (#9064)
  - Add-ons can bundle their own providers in a visionEnhancementProviders folder.
  - See the vision and visionEnhancementProviders modules for the implementation of the framework and examples, respectively.
  - Vision enhancement providers are enabled and configured via the 'vision' category in NVDA's settings dialog.
- Abstract class properties are now supported on objects that inherit from baseObject.AutoPropertyObject (e.g. NVDAObjects and TextInfos). (#10102)
- Introduced displayModel.UNIT_DISPLAYCHUNK as a textInfos unit constant specific to DisplayModelTextInfo. (#10165)
  - This new constant allows walking over the text in a DisplayModelTextInfo in a way that more closely resembles how the text chunks are saved in the underlying model.
- displayModel.getCaretRect now returns an instance of locationHelper.RectLTRB. (#10233)
- The UNIT_CONTROLFIELD and UNIT_FORMATFIELD constants have been moved from virtualBuffers.VirtualBufferTextInfo to the textInfos package. (#10396)
- For every entry in the NVDA log, information about the originating thread is now included. (#10259)
- UIA TextInfo objects can now be moved/expanded by the page, story and formatField text units. (#10396)
- External modules (appModules and globalPlugins) are now less likely to be able to break the creation of NVDAObjects.
  - Exceptions caused by the "chooseNVDAObjectOverlayClasses" and "event_NVDAObject_init" methods are now properly caught and logged.
- The aria.htmlNodeNameToAriaLandmarkRoles dictionary has been renamed to aria.htmlNodeNameToAriaRoles. It now also contains roles that aren't landmarks.
- scriptHandler.isCurrentScript has been removed due to lack of use. There is no replacement. (#8677)

## 2019.2.1

This is a minor release to fix several crashes present in 2019.2. Fixes include:

- Addressed several crashes in Gmail seen in both Firefox and Chrome when interacting with particular popup menus such as when creating filters or changing certain Gmail settings. (#10175, #9402, #8924)
- In Windows 7, NVDA no longer causes Windows Explorer to crash when the mouse is used in the start menu. (#9435)
- Windows Explorer on Windows 7 no longer crashes when accessing metadata edit fields. (#5337)
- NVDA no longer freezes when interacting with images with a base64 URI in Mozilla Firefox or Google Chrome. (#10227)

## 2019.2

Highlights of this release include auto detection of Freedom Scientific braille displays, an experimental setting in the Advanced panel to stop browse mode from automatically moving focus (which may provide performance improvements), a rate boost option for the Windows OneCore synthesizer to achieve very fast rates, and many other bug fixes.

### New Features

- NVDA's Miranda NG support works with newer versions of the client. (#9053)
- You can now disable browse mode by default by disabling the new "Enable browse mode on page load" option in NVDA's browse mode settings. (#8716)
  - Note that when this option is disabled, you can still enable browse mode manually by pressing NVDA+space.
- You can now filter symbols in the punctuation/symbol pronunciation dialog, similar to how filtering works in the elements list and input gestures dialog. (#5761)
- A command has been added to change the mouse text unit resolution (how much text will be spoken when the mouse moves), it has not been assigned a default gesture. (#9056)
- The windows OneCore synthesizer now has a rate boost option, which allows for significantly faster speech. (#7498)
- The Rate Boost option is now configurable from the Synth Settings Ring for supported speech synthesizers. (Currently eSpeak-NG and Windows OneCore). (#8934)
- Configuration profiles can now be manually activated with gestures. (#4209)
  - The gesture must be configured in the "Input gestures" dialog.
- In Eclipse, added support for autocompletion in code editor. (#5667)
  - Additionally, Javadoc information can be read from the editor when it is present by using NVDA+d.
- Added an experimental option to the Advanced Settings panel that allows you to stop the system focus from following the browse mode cursor (Automatically set system focus to focusable elements). (#2039) Although this may not be suitable to turn off for all websites, this may fix:
  - Rubber band effect: NVDA sporadically undoes the last browse mode keystroke by jumping to the previous location.
  - Edit boxes steal system focus when arrowing down through them on some websites.
  - Browse mode keystrokes are slow to respond.
- For braille display drivers that support it, driver settings can now be changed from the braille settings category in NVDA's settings dialog. (#7452)
- Freedom Scientific braille displays are now supported by braille display auto detection. (#7727)
- Added a command to show the replacement for the symbol under the review cursor. (#9286)
- Added an experimental option to the Advanced Settings panel that allows you to try out a new, work-in-progress rewrite of NVDA's Windows Console support using the Microsoft UI Automation API. (#9614)
- In the Python Console, the input field now supports pasting multiple lines from the clipboard. (#9776)

### Changes

- Synthesizer volume is now increased and decreased by 5 instead of 10 when using the settings ring. (#6754)
- Clarified the text in the add-on manager when NVDA is launched with the --disable-addons flag. (#9473)
- Updated Unicode Common Locale Data Repository emoji annotations to version 35.0. (#9445)
- The hotkey for the filter field in the elements list in browse mode has changed to alt+y. (#8728)
- When an auto detected braille display is connected via Bluetooth, NVDA will keep searching for USB displays supported by the same driver and switch to a USB connection if it becomes available. (#8853)
- Updated eSpeak-NG to commit 67324cc.
- Updated liblouis braille translator to version 3.10.0. (#9439, #9678)
- NVDA will now report the word 'selected' after reporting the text a user has just selected.(#9028, #9909)
- In Microsoft Visual Studio Code, NVDA is in focus mode by default. (#9828)

### Bug Fixes

- NVDA no longer crashes when an add-on directory is empty. (#7686)
- LTR and RTL marks are no longer reported in Braille or per-character speech when accessing the properties window. (#8361)
- When jumping to form fields with Browse Mode quick navigation, the entire form field is now announced rather than just the first line. (#9388)
- NVDA will no longer become silent after exiting the Windows 10 Mail app. (#9341)
- NVDA no longer fails to start when the users regional settings are set to a locale unknown to NVDA, such as English (Netherlands). (#8726)
- When browse mode is enabled in Microsoft Excel and you switch to a browser in focus mode or vice versa, browse mode state is now reported appropriately. (#8846)
- NVDA now properly reports the line at the mouse cursor in Notepad++ and other Scintilla based editors. (#5450)
- In Google Docs (and other web-based editors), braille no longer sometimes incorrectly shows "lst end" before the cursor in the middle of a list item. (#9477)
- In the Windows 10 May 2019 Update, NVDA no longer speaks many volume notifications if changing the volume with hardware buttons when File Explorer has focus. (#9466)
- Loading the punctuation/symbol pronunciation dialog is now much faster when using symbol dictionaries containing over 1000 entries. (#8790)
- In Scintilla controls such as Notepad++, NVDA can read the correct line when wordwrap is enabled. (#9424)
- In Microsoft Excel, the cell location is announced after it changes due to the shift+enter or shift+numpadEnter gestures. (#9499)
- In Visual Studio 2017 and up, in the Objects Explorer window, the selected item in objects tree or members tree with categories is now reported correctly. (#9311)
- Add-ons with names that only differ in capitalization are no longer treated as separate add-ons. (#9334)
- For Windows OneCore voices, the rate set in NVDA is no longer affected by the rate set in Windows 10 Speech Settings. (#7498)
- The log can now be opened with NVDA+F1 when there is no developer info for the current navigator object. (#8613)
- It is again possible to use NVDA's table navigation commands in Google Docs, in Firefox and Chrome. (#9494)
- The bumper keys now work correctly on Freedom Scientific braille displays. (#8849)
- When reading the first character of a document in Notepad++ 7.7 X64, NVDA no longer freezes for up to ten seconds. (#9609)
- HTCom can now be used with a Handy Tech Braille display in combination with NVDA. (#9691)
- In Mozilla Firefox, updates to a live region are no longer reported if the live region is in a background tab. (#1318)
- NVDA's browse mode Find dialog no longer fails to function if NVDA's About dialog is currently open in the background. (#8566)

### 針對開發人員的變化

- You can now set the "disableBrowseModeByDefault" property on app modules to leave browse mode off by default. (#8846)
- The extended window style of a window is now exposed using the `extendedWindowStyle` property on Window objects and their derivatives. (#9136)
- Updated comtypes package to 1.1.7. (#9440, #8522)
- When using the report module info command, the order of information has changed to present the module first. (#7338)
- Added an example to demonstrate using nvdaControllerClient.dll from C#. (#9600)
- Added a new isWin10 function to the winVersion module which returns whether or not this copy of NVDA is running on (at least) the supplied release version of Windows 10 (such as 1903). (#9761)
- The NVDA Python console now contains more useful modules in its namespace (such as appModules, globalPlugins, config and textInfos). (#9789)
- The result of the last executed command in the NVDA Python console is now accessible from the _ (line) variable. (#9782)
  - Note that this shadows the gettext translation function also called "_". To access the translation function: del _

## 2019.1.1

This point release fixes the following bugs:

- NVDA no longer causes Excel 2007 to crash or refuses to report if a cell has a formula. (#9431)
- Google Chrome no longer crashes when interacting with certain listboxes. (#9364)
- An issue has been fixed which prevented copying a users configuration to the system configuration profile. (#9448)
- In Microsoft Excel, NVDA again uses the localized message when reporting the location of merged cells. (#9471)

## 2019.1

Highlights of this release include performance improvements when accessing both Microsoft word and Excel, stability and security improvements such as support for add-ons with version compatibility information, and many other bug fixes.

Please note that starting from this release of NVDA, custom appModules, globalPlugins, braille display drivers and synth drivers will no longer be automatically loaded from your NVDA user configuration directory. Rather these should be installed as part of an NVDA add-on. For those developing code for an add-on, code for testing can be placed in a new developer scratchpad directory in the NVDA user configuration directory, if the Developer scratchpad option is turned on in NVDA's new Advanced settings panel. These changes are necessary to better ensure compatibility of custom code, so that NVDA does not break when this code becomes incompatible with newer releases. Please refer to the list of changes further down for more details on this and how add-ons are now better versioned.

### New Features

- New braille tables: Afrikaans, Arabic 8 dot computer braille, Arabic grade 2, Spanish grade 2. (#4435, #9186)
- Added an option to NVDA's mouse settings to make NVDA handle situations where the mouse is controlled by another application. (#8452)
  - This will allow NVDA to track the mouse when a system is controlled remotely using TeamViewer or other remote control software.
- Added the `--enable-start-on-logon` command line parameter to allow configuring whether silent installations of NVDA set NVDA to start at Windows logon or not. Specify true to start at logon or false to not start at logon. If the --enable-start-on-logon argument is not specified at all then NVDA will default to starting at logon, unless it was already configured not to by a previous installation. (#8574)
- It is possible to turn NVDA's logging features off by setting logging level to "disabled" from General settings panel. (#8516)
- The presence of formulae in LibreOffice and Apache OpenOffice spreadsheets is now reported. (#860)
- In Mozilla Firefox and Google Chrome, browse mode now reports the selected item in list boxes and trees.
  - This works in Firefox 66 and later.
  - This does not work for certain list boxes (HTML select controls) in Chrome.
- Early support for apps such as Mozilla Firefox on computers with ARM64 (e.g. Qualcomm Snapdragon) processors. (#9216)
- A new Advanced Settings category has been added to NVDA's Settings dialog, including an option to try out NVDA's new support for Microsoft Word via the Microsoft UI Automation API. (#9200)
- Added support for the graphical view in Windows Disk Management. (#1486)
- Added support for Handy Tech Connect Braille and Basic Braille 84. (#9249)

### Changes

- Updated liblouis braille translator to version 3.8.0. (#9013)
- Add-on authors now can enforce a minimum required NVDA version for their add-ons. NVDA will refuse to install or load an add-on whose minimum required NVDA version is higher than the current NVDA version. (#6275)
- Add-on authors can now specify the last version of NVDA the add-on has been tested against. If an add-on has been only tested against a version of NVDA lower than the current version, then NVDA will refuse to install or load the add-on. (#6275)
- This version of NVDA will allow installing and loading of add-ons that do not yet contain Minimum and Last Tested NVDA version information, but upgrading to future versions of NVDA (E.g. 2019.2) may automatically cause these older add-ons to be disabled.
- The move mouse to navigator object command is now available in Microsoft Word as well as for UIA controls, particularly Microsoft Edge. (#7916, #8371)
- Reporting of text under the mouse has been improved within Microsoft Edge and other UIA applications. (#8370)
- When NVDA is started with the `--portable-path` command line parameter, the provided path is automatically filled in when trying to create a portable copy of NVDA using the NVDA menu. (#8623)
- Updated the path to the Norwegian braille table to reflect the standard from the year 2015. (#9170)
- When navigating by paragraph (control+up or down arrows) or navigating by table cell (control+alt+arrows), the existence of spelling errors will no longer be announced, even if NVDA is configured to announce these automatically. This is because paragraphs and table cells can be quite large, and detecting spelling errors in some applications can be very costly. (#9217)
- NVDA no longer automatically loads custom appModules, globalPlugins and braille and synth drivers from the NVDA user configuration directory. This code should be instead packaged as an add-on with correct version information, ensuring that incompatible code is not run with current versions of NVDA. (#9238)
  - For developers who need to test code as it is being developed, enable NVDA's developer scratchpad directory in the Advanced category of NVDA settings, and place your code in the 'scratchpad' directory found in the NVDA user configuration directory when this option is enabled.

### Bug Fixes

- When using OneCore speech synthesizer on Windows 10 April 2018 Update and later, large chunks of silence are no longer inserted between speech utterances. (#8985)
- When moving by character in plain text controls (such as Notepad) or browse mode, 32 bit emoji characters consisting of two UTF-16 code points (such as 🤦) will now read properly. (#8782)
- Improved restart confirmation dialog after changing NVDA's interface language. The text and the button labels are now more concise and less confusing. (#6416)
- If a 3rd party speech synthesizer fails to load, NVDA will fall back to Windows OneCore speech synthesizer on Windows 10, rather than espeak. (#9025)
- Removed the "Welcome Dialog" entry in the NVDA menu while on secure screens. (#8520)
- When tabbing or using quick navigation in browse mode, legends on tab panels are now reported more consistently. (#709)
- NVDA will now announce selection changes for certain time pickers such as in the Alarms and Clock app in Windows 10. (#5231)
- In Windows 10's Action Center, NVDA will announce status messages when toggling quick actions such as brightness and focus assist. (#8954)
- In action Center in Windows 10 October 2018 Update and earlier, NVDA will recognize brightness quick action control as a button instead of a toggle button. (#8845)
- NVDA will again track cursor and announce deleted characters in the Microsoft Excel go to and find edit fields. (#9042)
- Fixed a rare browse mode crash in Firefox. (#9152)
- NVDA no longer fails to report the focus for some controls in the Microsoft Office 2016 ribbon when collapsed.
- NVDA no longer fails to report the suggested contact when entering addresses in new messages in Outlook 2016. (#8502)
- The last few cursor routing keys on 80 cell eurobraille displays no longer route the cursor to a position at or just after the start of the braille line. (#9160)
- Fixed table navigation in threaded view in Mozilla Thunderbird. (#8396)
- In Mozilla Firefox and Google Chrome, switching to focus mode now works correctly for certain list boxes and trees (where the list box/tree is not itself focusable but its items are) . (#3573, #9157)
- Browse mode is now correctly turned on by default when reading messages in Outlook 2016/365 if using NVDA's experimental UI Automation support for Word Documents. (#9188)
- NVDA is now less likely to freeze in such a way that the only way to escape is signing out from your current windows session. (#6291)
- In Windows 10 October 2018 Update and later, when opening cloud clipboard history with clipboard empty, NVDA will announce clipboard status. (#9103)
- In Windows 10 October 2018 Update and later, when searching for emojis in emoji panel, NVDA will announce top search result. (#9105)
- NVDA no longer freezes in the main window of Oracle VirtualBox 5.2 and above. (#9202)
- Responsiveness in Microsoft Word when navigating by line, paragraph or table cell may be significantly improved in some documents. A reminder that for best performance, set Microsoft Word to Draft view with alt+w,e after opening a document. (#9217)
- In Mozilla Firefox and Google Chrome, empty alerts are no longer reported. (#5657)
- Significant performance improvements when navigating cells in Microsoft Excel, particularly when the spreadsheet contains comments and or validation dropdown lists. (#7348)
- It should be no longer necessary to turn off in-cell editing in Microsoft Excel's options to access the cell edit control with NVDA in Excel 2016/365. (#8146).
- Fixed a freeze in Firefox sometimes seen when quick navigating by landmarks, if the Enhanced Aria add-on is in use. (#8980)

### Changes for Developers

- NVDA can now be built with all editions of Microsoft Visual Studio 2017 (not just the Community edition). (#8939)
- You can now include log output from liblouis into the NVDA log by setting the louis boolean flag in the debugLogging section of the NVDA configuration. (#4554)
- Add-on authors are now able to provide NVDA version compatibility information in add-on manifests. (#6275, #9055)
  - minimumNVDAVersion: The minimum required version of NVDA for an add-on to work properly.
  - lastTestedNVDAVersion: The last version of NVDA an add-on has been tested with.
- OffsetsTextInfo objects can now implement the _getBoundingRectFromOffset method to allow retrieval of bounding rectangles per characters instead of points. (#8572)
- Added a boundingRect property to TextInfo objects to retrieve the bounding rectangle of a range of text. (#8371)
- Properties and methods within classes can now be marked as abstract in NVDA. These classes will raise an error if instantiated. (#8294, #8652, #8658)
- NVDA can log the time since input when text is spoken, which helps in measuring perceived responsiveness. This can be enabled by setting the timeSinceInput setting to True in the debugLog section of the NVDA configuration. (#9167)

## 2018.4.1

This release fixes a crash at start up if NVDA's user interface language is set to Aragonese. (#9089)

## 2018.4

Highlights of this release include performance improvements in recent Mozilla Firefox versions, announcement of emojis with all synthesizers, reporting of replied/forwarded status in Outlook, reporting the distance of the cursor to the edge of a Microsoft Word page, and many bug fixes.

### New Features

- New braille tables: Chinese (China, Mandarin) grade 1 and grade 2. (#5553)
- Replied / Forwarded status is now reported on mail items in the Microsoft Outlook message list. (#6911)
- NVDA is now able to read descriptions for emoji as well as other characters that are part of the Unicode Common Locale Data Repository. (#6523)
- In Microsoft Word, the cursor's distance from the top and left edges of the page can be reported by pressing NVDA+numpadDelete. (#1939)
- In Google Sheets with braille mode enabled, NVDA no longer announces 'selected' on every cell when moving focus between cells. (#8879)
- Added support for Foxit Reader and Foxit Phantom PDF. (#8944)
- Added support for the DBeaver database tool. (#8905)

### Changes

- "Report help balloons" in the Object Presentations dialog has been renamed to "Report notifications" to include reporting of toast notifications in Windows 8 and later. (#5789)
- In NVDA's keyboard settings, the checkboxes to enable or disable NVDA modifier keys are now displayed in a list rather than as separate checkboxes.
- NVDA will no longer present redundant information when reading clock system tray on some versions of Windows. (#4364)
- Updated liblouis braille translator to version 3.7.0. (#8697)
- Updated eSpeak-NG to commit 919f3240cbb.

### Bug Fixes

- In Outlook 2016/365, the category and flag status are reported for messages. (#8603)
- When NVDA is set to languages such as Kirgyz, Mongolian or Macedonian, it no longer shows a dialog on start-up warning that the language is not supported by the Operating System. (#8064)
- Moving the mouse to the navigator object will now much more accurately move the mouse to the browse mode position in Mozilla Firefox, Google Chrome and Acrobat Reader DC. (#6460)
- Interacting with combo boxes on the web in Firefox, Chrome and Internet Explorer has been improved. (#8664)
- If running on the Japanese version of Windows XP or Vista, NVDA now displays OS version requirements message as expected. (#8771)
- Performance improvements when navigating large pages with lots of dynamic changes in Mozilla Firefox. (#8678)
- Braille no longer shows font attributes if they have been disabled in Document Formatting settings. (#7615)
- NVDA no longer fails to track focus in File Explorer and other applications using UI Automation when another app is busy (such as batch processing audio). (#7345)
- In ARIA menus on the web, the Escape key will now be passed through to the menu and no longer turn off focus mode unconditionally. (#3215)
- In the new Gmail web interface, when using quick navigation inside messages while reading them, the entire body of the message is no longer reported after the element to which you just navigated. (#8887)
- After updating NVDA, Browsers such as Firefox and google Chrome should no longer crash, and browse mode should continue to correctly reflect updates to any currently loaded documents. (#7641)
- NVDA no longer reports clickable multiple times in a row when navigating clickable content in Browse Mode. (#7430)
- Gestures performed on baum Vario 40 braille displays will no longer fail to execute. (#8894)
- In Google Slides with Mozilla Firefox, NVDA no longer reports selected text on every control with focus. (#8964)

### Changes for Developers

- gui.nvdaControls now contains two classes to create accessible lists with check boxes. (#7325)
  - CustomCheckListBox is an accessible subclass of wx.CheckListBox.
  - AutoWidthColumnCheckListCtrl adds accessible check boxes to an AutoWidthColumnListCtrl, which itself is based on wx.ListCtrl.
- If you need to make a wx widget accessible which isn't already, it is possible to do so by using an instance of gui.accPropServer.IAccPropServer_impl. (#7491)
  - See the implementation of gui.nvdaControls.ListCtrlAccPropServer for more info.
- Updated configobj to 5.1.0dev commit 5b5de48a. (#4470)
- The config.post_configProfileSwitch action now takes the optional prevConf keyword argument, allowing handlers to take action based on differences between configuration before and after the profile switch. (#8758)

## 2018.3.2

This is a minor release to work around a crash in Google Chrome when navigating tweetts on www.twitter.com. (#8777)

## 2018.3.1

This is a minor release to fix a critical bug in NVDA which caused 32 bit versions of Mozilla Firefox to crash. (#8759)

## 2018.3

Highlights of this release include automatic detection of many Braille displays, support for new Windows 10 features including the Windows 10 Emoji input panel, and many other bug fixes.

### New Features

- NVDA will report grammar errors when appropriately exposed by web pages in Mozilla Firefox and Google Chrome. (#8280)
- Content marked as being either inserted or deleted in web pages is now reported in Google Chrome. (#8558)
- Added support for BrailleNote QT and Apex BT's scroll wheel when BrailleNote is used as a braille display with NVDA. (#5992, #5993)
- Added scripts for reporting elapsed and total time of current track in Foobar2000. (#6596)
- The Mac command key symbol (⌘) is now announced when reading text with any synthesizer. (#8366)
- Custom roles via the aria-roledescription attribute are now supported in all web browsers. (#8448)
- New braille tables: Czech 8 dot, Central Kurdish, Esperanto, Hungarian, Swedish 8 dot computer braille. (#8226, #8437)
- Support has been added to automatically detect braille displays in the background. (#1271)
  - ALVA, Baum/HumanWare/APH/Orbit, Eurobraille, Handy Tech, Hims, SuperBraille and HumanWare BrailleNote and Brailliant BI/B displays are currently supported.
  - You can enable this feature by selecting the automatic option from the list of braille displays in NVDA's braille display selection dialog.
  - Please consult the documentation for additional details.
- Added support for various modern input features introduced in recent Windows 10 releases. These include emoji panel (Fall Creators Update), dictation (Fall Creators Update), hardware keyboard input suggestions (April 2018 Update), and cloud clipboard paste (October 2018 Update). (#7273)
- Content marked as a block quote using ARIA (role blockquote) is now supported in Mozilla Firefox 63. (#8577)

### Changes

- The list of available languages in NVDA's General Settings is now sorted based on language names instead of ISO 639 codes. (#7284)
- Added default gestures for Alt+Shift+Tab and Windows+Tab with all supported Freedom Scientific braille displays. (#7387)
- For ALVA BC680 and protocol converter displays, it is now possible to assign different functions to the left and right smart pad, thumb and etouch keys. (#8230)
- For ALVA BC6 displays, the key combination sp2+sp3 will now announce the current date and time, whereas sp1+sp2 emulates the Windows key. (#8230)
- The user is asked once when NVDA starts if they are happy sending usage statistics to NV Access when checking for NVDA updates. (#8217)
- When checking for updates, if the user has agreed to allow sending usage statistics to NV Access, NVDA will now send the name of the current synth driver and braille display in use, to aide in better prioritization for future work on these drivers. (#8217)
- Updated liblouis braille translator to version 3.6.0. (#8365)
- Updated the path to the correct Russian eight-dots Braille table. (#8446)
- Updated eSpeak-ng to 1.49.3dev commit 910f4c2. (#8561)

### Bug Fixes

- Accessible labels for controls in Google Chrome are now more readily reported in browse mode when the label does not appear as content itself. (#4773)
- Notifications are now supported in Zoom. For example, this includes mute/unmute status, and incoming messages. (#7754)
- Switching braille context presentation when in browse mode no longer causes braille output to stop following browse mode cursor. (#7741)
- ALVA BC680 braille displays no longer intermittently fail to initialize. (#8106)
- By default, ALVA BC6 displays will no longer execute emulated system keyboard keys when pressing key combinations involving sp2+sp3 to trigger internal functionality. (#8230)
- Pressing sp2 on an ALVA BC6 display to emulate the alt key now works as advertised. (#8360)
- NVDA no longer announces redundant keyboard layout changes. (#7383, #8419)
- Mouse tracking is now much more accurate in Notepad and other plain text edit controls when in a document with more than 65535 characters. (#8397)
- NVDA will recognize more dialogs in Windows 10 and other modern applications. (#8405)
- On Windows 10 October 2018 Update and Server 2019 and above, NVDA no longer fails to track the system focus when an application freezes or floods the system with events. (#7345, #8535)
- Users are now informed when attempting to read or copy an empty status bar. (#7789)
- Fixed an issue where the "not checked" state on controls is not reported in speech if the control has previously been half checked. (#6946)
- In the list of languages in NVDA's General Settings, language name for Burmese is displayed correctly on Windows 7. (#8544)
- In Microsoft Edge, NVDA will announce notifications such as reading view availability and page load progress. (#8423)
- When navigating into a list on the web, NVDA will now report its label if the web author has provided one. (#7652)
- When manually assigning functions to gestures for a particular braille display, these gestures now always show up as being assigned to that display. Previously, they showed up as if they were assigned to the currently active display. (#8108)
- The 64-bit version of Media Player Classic is now supported. (#6066)
- Several improvements to braille support in Microsoft Word with UI Automation enabled:
  - Similar to other multiline text fields, When positioned at the start of a document in Braille, the display is now panned such that the first character of the document is at the start of the display. (#8406)
  - Reduced overly verbose focus presentation in both speech and braille when focusing a Word document. (#8407)
  - Cursor routing in braille now works correctly when in a list in a Word document. (#7971)
  - Newly inserted bullets/numbers in a Word document are correctly reported in both speech and braille. (#7970)
- In Windows 10 1803 and later, it is now possible to install add-ons if the "Use Unicode UTF-8 for worldwide language support" feature is enabled. (#8599)
- NVDA will no longer make iTunes 12.9 and newer completely unusable to interact with. (#8744)

### Changes for Developers

- Added scriptHandler.script, which can function as a decorator for scripts on scriptable objects. (#6266)
- A system test framework has been introduced for NVDA. (#708)
- Some changes have been made to the hwPortUtils module: (#1271)
  - listUsbDevices now yields dictionaries with device information including hardwareID and devicePath.
  - Dictionaries yielded by listComPorts now also contain a usbID entry for COM ports with USB VID/PID information in their hardware ID.
- Updated wxPython to 4.0.3. (#7077)
- As NVDA now only supports Windows 7 SP1 and later, the key "minWindowsVersion" used to check if UIA should be enabled for a particular release of Windows has been removed. (#8422)
- You can now register to be notified about configuration saves/reset actions via new config.pre_configSave, config.post_configSave, config.pre_configReset, and config.post_configReset actions. (#7598)
  - config.pre_configSave is used to be notified when NVDA's configuration is about to be saved, and config.post_configSave is called after configuration has been saved.
  - config.pre_configReset and config.post_configReset includes a factory defaults flag to specify if settings are reloaded from disk (false) or reset to defaults (true).
- config.configProfileSwitch has been renamed to config.post_configProfileSwitch to reflect the fact that this action is called after profile switch takes place. (#7598)
- UI Automation interfaces updated to Windows 10 October 2018 Update and Server 2019 (IUIAutomation6 / IUIAutomationElement9). (#8473)

## 2018.2.1

This release includes translation updates due to last-minute removal of a feature which caused problems.

## 2018.2

Highlights of this release include Support for tables in Kindle for PC, support for HumanWare BrailleNote Touch and BI14 Braille displays, Improvements to both Onecore and Sapi5 speech synthesizers, improvements in Microsoft Outlook and much more.

### New Features

- row and column span for table cells is now reported in speech and braille. (#2642)
- NVDA table navigation commands are now supported in Google Docs (with Braille mode enabled). (#7946)
- Added ability to read and navigate tables in Kindle for PC. (#7977)
- Support for HumanWare BrailleNote touch and Brailliant BI 14 braille displays via both USB and bluetooth. (#6524)
- In Windows 10 Fall Creators Update and later, NVDA can announce notifications from apps such as Calculator and Windows Store. (#7984)
- New braille translation tables: Lithuanian 8 dot, Ukrainian, Mongolian grade 2. (#7839)
- Added a script to report formatting information for the text under a specific braille cell. (#7106)
- When updating NVDA, it is now possible to postpone the installation of the update to a later moment. (#4263)
- New languages: Mongolian, Swiss German.
- You can now toggle control, shift, alt, windows and NVDA from your braille keyboard and combine these modifiers with braille input (e.g. press control+s). (#7306)
  - You can assign these new modifier toggles using the commands found under Emulated system keyboard keys in the Input gestures dialog.
- Restored support for Handy Tech Braillino and Modular (with old firmware) displays. (#8016)
- Date and time for supported Handy Tech devices (such as Active Braille and Active Star) will now automatically be synchronized by NVDA when out of sync more than five seconds. (#8016)
- An input gesture can be assigned to temporarily disable all configuration profile triggers. (#4935)

### Changes

- The status column in the addons manager has been changed to indicate if the addon is enabled or disabled rather than running or suspended. (#7929)
- Updated liblouis braille translator to 3.5.0. (#7839)
- The Lithuanian braille table has been renamed to Lithuanian 6 dot to avoid confusion with the new 8 dot table. (#7839)
- The French (Canada) grade 1 and grade 2 tables have been removed. Instead, the French (unified) 6 dot computer braille and Grade 2 tables will be used respectively. (#7839)
- The secondary routing buttons on Alva BC6, EuroBraille and Papenmeier braille displays now report formatting information for the text under the braille cell of that button. (#7106)
- Contracted braille input tables will automatically fall back to uncontracted mode in non-editable cases (i.e. controls where there is no cursor or in browse mode). (#7306)
- NVDA is now less verbose when an appointment or time slot in the Outlook calendar covers an entire day. (#7949)
- All of NVDA's Preferences can now be found in one settings dialog under NVDA Menu -> Preferences -> Settings, rather than scattered throughout many dialogs. (#577)
- The default speech synthesizer when running on Windows 10 is now oneCore speech rather than eSpeak. (#8176)

### Bug Fixes

- NVDA no longer fails to read focused controls in the Microsoft Account sign-in screen in Settings after entering an email address. (#7997)
- NVDA no longer fails to read the page when going back to a previous page in Microsoft Edge. (#7997)
- NVDA will no longer incorrectly announce the final character of a windows 10 sign-in PIN as the machine unlocks. (#7908)
- Labels of checkboxes and radio buttons in Chrome and Firefox are no longer reported twice when tabbing or using quick navigation in Browse mode. (#7960)
- aria-current with a value of false will be announced as "false" instead of "true". (#7892).
- Windows OneCore Voices no longer fails to load if the configured voice has been uninstalled. (#7553)
- Changing voices in the Windows OneCore Voices is now a lot faster. (#7999)
- Fixed malformed braille output for several braille tables, including capital signs in 8 dot contracted Danish braille. (#7526, #7693)
- NVDA can now report more bullet types in Microsoft Word. (#6778)
- Pressing the report formatting script no longer incorrectly moves the reviewPosition and therefore pressing it multiple times no longer gives different results. (#7869)
- Braille input no longer allows you to use contracted braille in cases where it is not supported (i.e. whole words will no longer be sent to the system outside text content and in browse mode). (#7306)
- Fixed connection stability issues for Handy Tech Easy Braille and Braille Wave displays. (#8016)
- On Windows 8 and later, NVDA will no longer announce "unknown" when opening quick link menu )Windows+X) and selecting items from this menu. (#8137)
- Model specific gestures to buttons on Hims displays are now working as advertised in the user guide. (#8096)
- NVDA will now try to correct system COM registration issues causing programs such as Firefox and Internet Explorer to become inaccessible and report "Unknown" by NVDA. (#2807)
- Worked around a bug in Task Manager causing NVDA to not allow users to access the contents of specific details about processes. (#8147)
- Newer Microsoft SAPI5 voices no longer lag at the end of speech, making it much more efficient to navigate with these voices. (#8174)
- NVDA no longer reports (LTR and RTL marks) in Braille or per-character speech when accessing the clock in recent versions of Windows. (#5729)
- Detection of scroll keys on Hims Smart Beetle displays is once more no longer unreliable. (#6086)
- In some text controls, particularly in Delphi applications, the information provided about editing and navigating is now much more reliable. (#636, #8102)
- In Windows 10 RS5, NVDA no longer reports extra redundant information when switching tasks with alt+tab. (#8258)

### Changes for developers

- The developer info for UIA objects now contains a list of the UIA patterns available. (#5712)
- App modules can now force certain windows to always use UIA by implementing the isGoodUIAWindow method. (#7961)
- The hidden boolean flag "outputPass1Only" in the braille section of the configuration has again been removed. Liblouis no longer supports pass 1 only output. (#7839)

## 2018.1.1

This is a special release of NVDA which addresses a bug in the Onecore Windows Speech synthesizer driver, which was causing it to speak with a higher pitch and speed in Windows 10 Redstone 4 (1803). (#8082)

## 2018.1

Highlights of this release include support for charts in Microsoft word and PowerPoint, support for new braille displays including Eurobraille and the Optelec protocol converter, improved support for Hims and Optelec braille displays, performance improvements for Mozilla Firefox 58 and higher, and much more.

### New Features

- It is now possible to interact with charts in Microsoft Word and Microsoft PowerPoint, similar to the existing support for charts in Microsoft Excel. (#7046)
  - In Microsoft Word: When in browse mode, cursor to an embedded chart and press enter to interact with it.
  - In Microsoft PowerPoint when editing a slide: tab to a chart object, and press enter or space to interact with the chart.
  - To stop interacting with a chart, press escape.
- New language: Kyrgyz.
- Added support for VitalSource Bookshelf. (#7155)
- Added support for the Optelec protocol converter, a device that allows one to use Braille Voyager and Satellite displays using the ALVA BC6 communication protocol. (#6731)
- It is now possible to use braille input with an ALVA 640 Comfort braille display. (#7733)
  - NVDA's braille input functionality can be used with these as well as other BC6 displays with firmware 3.0.0 and above.
- Early support for Google Sheets with Braille mode enabled. (#7935)
- Support for Eurobraille Esys, Esytime and Iris braille displays. (#7488)

### Changes

- The HIMS Braille Sense/Braille EDGE/Smart Beetle and Hims Sync Braille display drivers have been replaced by one driver. The new driver will automatically be activated for former syncBraille driver users. (#7459)
  - Some keys , notably scroll keys, have been reassigned to follow the conventions used by Hims products. Consult the user guide for more details.
- When typing with the on-screen keyboard via touch interaction, by default you now need to double tap each key the same way you would activate any other control. (#7309)
  - To use the existing "touch typing" mode where simply lifting your finger off the key is enough to activate it, Enable this option in the new Touch Interaction settings dialog found in the Preferences menu.
- It is no longer necessary to explicitly tether braille to focus or review, as this will happen automatically by default. (#2385)
  - Note that automatic tethering to review will only occur when using a review cursor or object navigation command. Scrolling will not activate this new behavior.

### Bug Fixes

- Browseable messages such as showing current formatting when pressing NVDA+f twice quickly no longer fails when NVDA is installed on a path with non-ASCII characters. (#7474)
- Focus is now once again restored correctly when returning to Spotify from another application. (#7689)
- In Windows 10 Fall Creaters Update, NVDA no longer fails to update when Controlled Folder Access is enabled from Windows Defender Security Center. (#7696)
- Detection of scroll keys on Hims Smart Beetle displays is no longer unreliable. (#6086)
- A slight performance improvement when rendering large amounts of content in Mozilla Firefox 58 and later. (#7719)
- In Microsoft Outlook, reading emails containing tables no longer causes errors. (#6827)
- Braille display gestures that emulate system keyboard key modifiers can now also be combined with other emulated system keyboard keys if one or more of the involved gestures are model specific. (#7783)
- In Mozilla Firefox, browse mode now works correctly in pop-ups created by extensions such as LastPass and bitwarden. (#7809)
- NVDA no longer sometimes freezes on every focus change if Firefox or Chrome have stopped responding such as due to a freeze or crash. (#7818)
- In twitter clients such as Chicken Nugget, NVDA will no longer ignore the last 20 characters of 280 character tweets when reading them. (#7828)
- NVDA now uses the correct language when announcing symbols when text is selected. (#7687)
- In recent versions of Office 365, it is again possible to navigate Excel charts using the arrow keys. (#7046)
- In speech and braille output, control states will now always be reported in the same order, regardless whether they are positive or negative. (#7076)
- In apps such as Windows 10 Mail, NVDA will no longer fail to announce deleted characters when pressing backspace. (#7456)
- All keys on the Hims Braille Sense Polaris displays are now working as expected. (#7865)
- NVDA no longer fails to start on Windows 7 complaining about an internal api-ms dll, when a particular version of the Visual Studio 2017 redistributables have been installed by another application. (#7975)

### Changes for developers

- Added a hidden boolean flag to the braille section in the configuration: "outputPass1Only". (#7301, #7693, #7702)
  - This flag defaults to true. If false, liblouis multi pass rules will be used for braille output.
- A new dictionary (braille.RENAMED_DRIVERS) has been added to allow for smooth transition for users using drivers that have been superseded by others. (#7459)
- Updated comtypes package to 1.1.3. (#7831)
- Implemented a generic system in braille.BrailleDisplayDriver to deal with displays which send confirmation/acknowledgement packets. See the handyTech braille display driver as an example. (#7590, #7721)
- A new "isAppX" variable in the config module can be used to detect if NVDA is running as a Windows Desktop Bridge Store app. (#7851)
- For document implementations such as NVDAObjects or browseMode that have a textInfo, there is now a new documentBase.documentWithTableNavigation class that can be inherited from to gain standard table navigation scripts. Please refer to this class to see which helper methods must be provided by your implementation for table navigation to work. (#7849)
- The scons batch file now better handles when Python 3 is also installed, making use of the launcher to specifically launch python 2.7 32 bit. (#7541)
- hwIo.Hid now takes an additional parameter exclusive, which defaults to True. If set to False, other applications are allowed to communicate with a device while it is connected to NVDA. (#7859)

## 2017.4

Highlights of this release include many fixes and enhancements to web support including browse mode for web dialogs by default, better reporting of field group labels in browse mode, support for new Windows 10 technologies such as Windows Defender Application Guard and Windows 10 on ARM64, and automatic reporting of screen orientation and battery status. Please note that this version of NVDA no longer supports Windows XP or Windows Vista. The minimum requirement for NVDA is now windows 7 with Service Pack 1.

### New Features

- In browse mode, it is now possible to skip past/to the start of landmarks using the skip to end/beginning of container commands (comma/shift+comma). (#5482)
- In Firefox, Chrome and Internet Explorer, quick navigation to edit fields and form fields now includes editable rich text content (I.e. contentEditable). (#5534)
- In web browsers, the Elements List can now list form fields and buttons. (#588)
- Initial support for Windows 10 on ARM64. (#7508)
- Early support for reading and interactive navigation of mathematical content for Kindle books with accessible math. (#7536)
- Added support for Azardi e-book reader. (#5848)
- Version information for add-ons is now reported when being updated. (#5324)
- Added new command line parameters to create a portable copy of NVDA. (#6329)
- Support for Microsoft Edge running within Windows Defender Application Guard in Windows 10 Fall Creators Update. (#7600)
- If running on a laptop or tablet, NVDA will now report when a charger is connected/disconnected, and when the screen orientation changes. (#4574, #4612)
- New language: Macedonian.
- New braille translation tables: Croatian grade 1, Vietnamese grade 1. (#7518, #7565)
- Support for the Actilino braille display from Handy Tech has been added. (#7590)
- Braille input for Handy Tech braille displays is now supported. (#7590)

### Changes

- The minimum supported Operating System for NVDA is now Windows 7 Service Pack 1, or Windows Server 2008 R2 Service Pack 1. (#7546)
- Web dialogs in Firefox and Chrome web browsers now automatically use browse Mode, unless inside of a web application. (#4493)
- In browse mode, tabbing and moving with quick navigation commands no longer announces jumping out of containers such as lists and tables, which makes navigating more efficient. (#2591)
- In Browse mode for Firefox and Chrome, the name of form field groups are now announced when moving into them with quick navigation or when tabbing. (#3321)
- In browse mode, the quick navigation command for embedded objects (o and shift+o) now includes audio and video elements as well as elements with the aria roles application and dialog. (#7239)
- Espeak-ng has been updated to 1.49.2, resolving some issues with producing release builds. (#7385, #7583)
- On the third activation of the 'read status bar' command, its contents is copied to the clipboard. (#1785)
- When assigning gestures to keys on a Baum display, you can limit them to the model of the braille display in use (e.g. VarioUltra or Pronto). (#7517)
- The hotkey for the filter field in the elements list in browse mode has changed from alt+f to alt+e. (#7569)
- An unbound command has been added for browse mode to toggle the inclusion of layout tables on the fly. You can find this command in the Browse mode category of the Input Gestures dialog. (#7634)
- Upgraded liblouis braille translator to 3.3.0. (#7565)
- The hotkey for the regular expression radio button in the dictionary dialog has changed from alt+r to alt+e. (#6782)
- Voice dictionary files are now versioned and have been moved to the 'speechDicts/voiceDicts.v1' directory. (#7592)
- Versioned files (user configuration, voice dictionaries) modifications are no longer saved when NVDA is run from the launcher. (#7688)
- The Braillino, Bookworm and Modular (with old firmware) braille displays from Handy Tech are no longer supported out of the box. Install the Handy Tech Universal Driver and NVDA add-on to use these displays. (#7590)

### Bug Fixes

- Links are now indicated in braille in applications such as Microsoft Word. (#6780)
- NVDA no longer becomes noticeably slower when many tabs are open in either Firefox or Chrome web browsers. (#3138)
- Cursor routing for the MDV Lilli Braille display no longer incorrectly moves one braille cell ahead of where it should be. (#7469)
- In Internet Explorer and other MSHTML documents, the HTML5 required attribute is now supported to indicate the required state of a form field. (#7321)
- Braille displays are now updated when typing Arabic characters in a left-aligned WordPad document. (#511)
- Accessible labels for controls in Mozilla Firefox are now more readily reported in browse mode when the label does not appear as content itself. (#4773)
- On windows 10 Creaters Update, NVDA can again access Firefox after a restart of NVDA. (#7269)
- When restarting NVDA with Mozilla Firefox in focus, browse mode will again be available, though you may need to alt+tab away and back again. (#5758)
- It is now possible to access math content in Google Chrome on a system with out Mozilla Firefox installed. (#7308)
- The Operating System and other applications should be more stable directly after installing NVDA before rebooting, as compaired with installs of previous NVDA versions. (#7563)
- When using a content recognition command (e.g. NVDA+r), NVDA now reports an error message instead of nothing if the navigator object has disappeared. (#7567)
- Backward scrolling functionality has been fixed for Freedom Scientific braille displays containing a left bumper bar. (#7713)

### Changes for Developers

- "scons tests" now checks that translatable strings have translator comments. You can also run this alone with "scons checkPot". (#7492)
- There is now a new extensionPoints module which provides a generic framework to enable code extensibility at specific points in the code. This allows interested parties to register to be notified when some action occurs (extensionPoints.Action), to modify a specific kind of data (extensionPoints.Filter) or to participate in deciding whether something will be done (extensionPoints.Decider). (#3393)
- You can now register to be notified about configuration profile switches via the config.configProfileSwitched Action. (#3393)
- Braille display gestures that emulate system keyboard key modifiers (such as control and alt) can now be combined with other emulated system keyboard keys without explicit definition. (#6213)
  - For example, if you have a key on your display bound to the alt key and another display key to downArrow, combining these keys will result in the emulation of alt+downArrow.
- The braille.BrailleDisplayGesture class now has an extra model property. If provided, pressing a key will generate an additional, model specific gesture identifier. This allows a user to bind gestures limited to a specific braille display model.
  - See the baum driver as an example for this new functionality.
- NVDA is now compiled with Visual Studio 2017 and the Windows 10 SDK. (#7568)

## 2017.3

Highlights of this release include input of contracted braille, support for new Windows OneCore voices available on Windows 10, in-built support for Windows 10 OCR, and many significant improvements regarding Braille and the web.

### 新功能

- A Braille setting has been added to "show messages indefinitely". (#6669)
- In Microsoft Outlook message lists, NVDA now reports if a message is flagged. (#6374)
- In Microsoft PowerPoint, the exact type of a shape is now reported when editing a slide (such as triangle, circle, video or arrow), rather than just "shape". (#7111)
- Mathematical content (provided as MathML) is now supported in Google Chrome. (#7184)
- NVDA can now speak using the new Windows OneCore voices (also known as Microsoft Mobile voices) included in Windows 10. You access these by selecting Windows OneCore voices in NVDA's Synthesizer dialog. (#6159)
- NVDA user configuration files can now be stored in the user's local application data folder. This is enabled via a setting in the registry. See "System Wide Parameters" in the User Guide for more details. (#6812)
- In web browsers, NVDA now reports placeholder values for fields (specifically, aria-placeholder is now supported). (#7004)
- In Browse mode for Microsoft Word, it is now possible to navigate to spelling errors using quick navigation (w and shift+w). (#6942)
- Added support for the Date picker control found in Microsoft Outlook Appointment dialogs. (#7217)
- The currently selected suggestion is now reported in Windows 10 Mail to/cc fields and the Windows 10 Settings search field. (#6241)
- A sound is now playd to indicate the appearance of suggestions in certain search fields in Windows 10 (E.g. start screen, settings search, Windows 10 mail to/cc fields). (#6241)
- NVDA now automatically reports notifications in Skype for Business Desktop, such as when someone starts a conversation with you. (#7281)
- NVDA now automatically reports incoming chat messages while in a Skype for Business conversation. (#7286)
- NVDA now automatically reports notifications in Microsoft Edge, such as when a download starts. (#7281)
- You can now type in both contracted and uncontracted braille on a braille display with a braille keyboard. See the Braille Input section of the User Guide for details. (#2439)
- You can now enter Unicode braille characters from the braille keyboard on a braille display by selecting Unicode braille as the input table in Braille Settings. (#6449)
- Added support for the SuperBraille braille display used in Taiwan. (#7352)
- New braille translation tables: Danish 8 dot computer braille, Lithuanian, Persian 8 dot computer braille, Persian grade 1, Slovenian 8 dot computer braille. (#6188, #6550, #6773, #7367)
- Improved English (U.S.) 8 dot computer braille table, including support for bullets, the euro sign and accented letters. (#6836)
- NVDA can now use the OCR functionality included in Windows 10 to recognize the text of images or inaccessible applications. (#7361)
  - The language can be set from the new Windows 10 OCR dialog in NVDA Preferences.
  - To recognize the content of the current navigator object, press NVDA+r.
  - See the Content Recognition section of the User Guide for further details.
- You can now choose what context information is shown on a braille display when an object gets focus using the new "Focus context presentation" setting in the Braille Settings dialog. (#217)
  - For example, the "Fill display for context changes" and "Only when scrolling back" options can make working with lists and menus more efficient, since the items won't continually change their position on the display.
  - See the section on the "Focus context presentation" setting in the User Guide for further details and examples.
- In Firefox and Chrome, NVDA now supports complex dynamic grids such as spreadsheets where only some of the content might be loaded or displayed (specifically, the aria-rowcount, aria-colcount, aria-rowindex and aria-colindex attributes introduced in ARIA 1.1). (#7410)

### Changes

- An unbound command has been added to restart NVDA on demand. You can find it in the Miscelaneous category of the Input Gestures dialog. (#6396)
- The keyboard layout can now be set from the NVDA Welcome dialog. (#6863)
- Many more control types and states have been abbreviated for braille. Landmarks have also been abbreviated. Please see "Control Type, State and Landmark Abbreviations" under Braille in the User Guide for a complete list. (#7188, #3975)
- Updated eSpeak NG to 1.49.1. (#7280)
- The output and input table lists in the Braille Settings dialog are now sorted alphabetically. (#6113)
- Updated liblouis braille translator to 3.2.0. (#6935)
- The default braille table is now Unified English Braille Code grade 1. (#6952)
- By default, NVDA now only shows the parts of the context information that have changed on a braille display when an object gets focus. (#217)
  - Previously, it always showed as much context information as possible, regardless of whether you have seen the same context information before.
  - You can revert to the old behaviour by changing the new "Focus context presentation" setting in the Braille Settings dialog to "Always fill display".
- When using Braille, the cursor can be configured to be a different shape when tethered to focus or review. (#7122)
- The NVDA logo has been updated. The updated NVDA logo is a stylised blend of the letters NVDA in white, on a solid purple background. This ensures it will be visible on any colour background, and uses the purple from the NV Access logo. (#7446)

### Bug Fixes

- Editable div elements in Chrome no longer have their label reported as their value while in browse mode. (#7153)
- Pressing end while in browse mode for an empty Microsoft Word document no longer causes a runtime error. (#7009)
- Browse mode is now correctly supported in Microsoft Edge where a document has been given a specific ARIA role of document. (#6998)
- In browse mode, you can now select or unselect to the end of the line using shift+end even when the caret is on the last character of the line. (#7157)
- If a dialog contains a progress bar, the dialog text is now updated in braille when the progress bar changes. This means, for example, that the remaining time can now be read in NVDA's "Downloading Update" dialog. (#6862)
- NVDA will now announce selection changes for certain Windows 10 combo boxes such as AutoPlay in Settings. (#6337).
- Pointless information is no longer announced when entering Meeting / Appointment creation dialogs in Microsoft Outlook. (#7216)
- Beeps for indeterminate progress bar dialogs such as the update checker only when progress bar output is configured to include beeps. (#6759)
- In Microsoft Excel 2003 and 2007, cells are again reported when arrowing around a worksheet. (#7243)
- In Windows 10 Creators Update and later, browse mode is again automatically enabled when reading emails in Windows 10 Mail. (#7289)
- On most braille displays with a braille keyboard, dot 7 now erases the last entered braille cell or character, and dot 8 presses the enter key. (#6054)
- In editable text, when moving the caret (e.g. with the cursor keys or backspace), NVDA's spoken feedback is now more accurate in many cases, particularly in Chrome and terminal applications. (#6424)
- The content of the Signature Editor in Microsoft Outlook 2016 can now be read. (#7253)
- In Java Swing applications, NVDA no longer sometimes causes the application to crash when navigating tables. (#6992)
- In Windows 10 Creators Update, NVDA will no longer announce toast notifications multiple times. (#7128)
- In The start menu in Windows 10, pressing Enter to close the start menu after a search no longer causes NVDA to announce search text. (#7370)
- Performing quick navigation to headings in Microsoft Edge is now significantly faster. (#7343)
- In Microsoft Edge, navigating in browse mode no longer skips large parts of certain web pages such as the Wordpress 2015 theme. (#7143)
- In Microsoft Edge, landmarks are correctly localized in languages other than English. (#7328)
- Braille now correctly follows the selection when selecting text beyond the width of the display. For example, if you select multiple lines with shift+downArrow, braille now shows the last line you selected. (#5770)
- In Firefox, NVDA no longer spuriously reports "section" several times when opening details for a tweet on twitter.com. (#5741)
- Table navigation commands are no longer available for layout tables in Browse Mode unless reporting of layout tables is enabled. (#7382)
- In Firefox and Chrome, Browse Mode table navigation commands now skip over hidden table cells. (#6652, #5655)

### Changes for Developers

- Timestamps in the log now include milliseconds. (#7163)
- NVDA must now be built with Visual Studio Community 2015. Visual Studio Express is no longer supported. (#7110)
  - The Windows 10 Tools and SDK are now also required, which can be enabled when installing Visual Studio.
  - See the Installed Dependencies section of the readme for additional details.
- Support for content recognizers such as OCR and image description tools can be easily implemented using the new contentRecog package. (#7361)
- The Python json package is now included in NVDA binary builds. (#3050)

## 2017.2

Highlights of this release include full support for audio ducking in the Windows 10 Creators Update; fixes for several selection issues in browse mode, including problems with select all; significant improvements in Microsoft Edge support; and improvements on the web such as indication of elements marked as current (using aria-current).

### 新功能

- Cell border information can now be reported in Microsoft Excel by using NVDA+f. (#3044)
- In web browsers, NVDA now indicates when an element has been marked as current (specifically, using the aria-current attribute). (#6358)
- Automatic language switching is now supported in Microsoft Edge. (#6852)
- Added support for Windows Calculator on Windows 10 Enterprise LTSB (Long-Term Servicing Branch) and Server. (#6914)
- Performing the read current line command three times quickly spells the line with character descriptions. (#6893)
- New language: Burmese.
- Unicode up and down arrows and fraction symbols are now spoken appropriately. (#3805)

### Changes

- When navigating with simple review in applications using UI Automation, more extraneous objects are now ignored, making navigation easier. (#6948, #6950)

### Bug Fixes

- Web page menu items can now be activated while in browse mode. (#6735)
- Pressing escape while the configuration profile "Confirm Deletion" dialog is active now dismisses the dialog. (#6851)
- Fixed some crashes in Mozilla Firefox and other Gecko applications where the multi-process feature is enabled. (#6885)
- Reporting of background color in screen review is now more accurate when text was drawn with a transparent background. (#6467)
- Improved support for control descriptions provided on web pages in Internet Explorer 11 (specifically, support for aria-describedby within iframes and when multiple IDs are provided). (#5784)
- In the Windows 10 Creators Update, NVDA's audio ducking again works as in previous Windows releases; i.e. Duck with speech and sounds, always duck and no ducking are all available. (#6933)
- NVDA will no longer fail to navigate to or report certain (UIA) controls where a keyboard shortcut is not defined. (#6779)
- Two empty spaces are no longer added in keyboard shortcut information for certain (UIA) controls. (#6790)
- Certain combinations of keys on HIMS displays (e.g. space+dot4) no longer fail intermittently. (#3157)
- Fixed an issue when opening a serial port on systems using certain languages other than English which caused connecting to braille displays to fail in some cases. (#6845)
- Reduced the chance of the configuration file being corrupted when Windows shuts down. Configuration files are now written to a temporary file before replacing the actual configuration file. (#3165)
- When performing the read current line command twice quickly to spell the line, the appropriate language is now used for the spelled characters. (#6726)
- Navigating by line in Microsoft Edge is now up to three times faster in the Windows 10 Creators Update. (#6994)
- NVDA no longer announces "Web Runtime grouping" when focusing Microsoft Edge documents in the Windows 10 Creators Update. (#6948)
- All existing versions of SecureCRT are now supported. (#6302)
- Adobe Acrobat Reader no longer crashes in certain PDF documents (specifically, those containing empty ActualText attributes). (#7021, #7034)
- In browse mode in Microsoft Edge, interactive tables (ARIA grids) are no longer skipped when navigating to tables with t and shift+t. (#6977)
- In browse mode, pressing shift+home after selecting forward now unselects to the beginning of the line as expected. (#5746)
- In browse mode, select all (control+a) no longer fails to select all text if the caret is not at the start of the text. (#6909)
- Fixed some other rare selection problems in browse mode. (#7131)

### Changes for Developers

- Commandline arguments are now processed with Python's argparse module, rather than optparse. This allows certain options such as -r and -q to be handled exclusively. (#6865)
- core.callLater now queues the callback to NVDA's main queue after the given delay, rather than waking the core and executing it directly. This stops possible freezes due to the core accidentally going to sleep after processing a callback, in the midle of a modal call such as the desplaying of a message box. (#6797)
- The InputGesture.identifiers property has been changed so that it is no longer normalized. (#6945)
  - Subclasses no longer need to normalize identifiers before returning them from this property.
  - If you want normalized identifiers, there is now an InputGesture.normalizedIdentifiers property which normalizes the identifiers returned by the identifiers property .
- The InputGesture.logIdentifier property is now deprecated. Callers should use InputGesture.identifiers[0] instead. (#6945)
- Removed some deprecated code:
  - `speech.REASON_*` constants: `controlTypes.REASON_*` should be used instead. (#6846)
  - `i18nName` for synth settings: `displayName` and `displayNameWithAccelerator` should be used instead. (#6846, #5185)
  - `config.validateConfig`. (#6846, #667)
  - `config.save`: `config.conf.save` should be used instead. (#6846, #667)
- The list of completions in the autocomplete context menu of the Python Console no longer shows any object path leading up to the final symbol being completed. (#7023)
- There is now a unit testing framework for NVDA. (#7026)
  - Unit tests and infrastructure are located in the tests/unit directory. See the docstring in the tests\unit\init.py file for details.
  - You can run tests using "scons tests". See the "Running Tests" section of readme.md for details.
  - If you are submitting a pull request for NVDA, you should first run the tests and ensure they pass.

## 2017.1

Highlights of this release include reporting of sections and text columns in Microsoft Word; Support for reading, navigating and annotating books in Kindle for PC; and improved support for Microsoft Edge.

### 新功能

- In Microsoft Word, the types of section breaks and section numbers can now be reported. This is enabled with the "Report page numbers" option in the Document Formatting dialog. (#5946)
- In Microsoft Word, text columns can now be reported. This is enabled with the "Report page numbers" option in the document formatting dialog. (#5946)
- Automatic language switching is now supported in WordPad. (#6555)
- The NVDA find command (NVDA+control+f) is now supported in browse mode in Microsoft Edge. (#6580)
- Quick navigation for buttons in browse mode (b and shift+b) is now supported in Microsoft Edge. (#6577)
- When copying a sheet in Microsoft Excel, column and row headers are remembered. (#6628)
- Support for reading and navigating books in Kindle for PC version 1.19, including access to links, footnotes, graphics, highlighted text and user notes. Please see the Kindle for PC section of the NVDA User Guide for further information. (#6247, #6638)
- Browse mode table navigation is now supported in Microsoft Edge. (#6594)
- In Microsoft Excel, the report review cursor location command (desktop: NVDA+numpadDelete, laptop: NVDA+delete) now reports the name of the worksheet and the cell location. (#6613)
- Added an option to the exit dialog to restart with debug level logging. (#6689)

### Changes

- The minimum braille cursor blink rate is now 200 ms. If this was previously set lower, it will be increased to 200 ms. (#6470)
- A check box has been added to the braille settings dialog to allow enabling/disabling braille cursor blinking. Previously a value of zero was used to achieve this. (#6470)
- Updated eSpeak NG (commit e095f008, 10 January 2017). (#6717)
- Due to changes In the Windows 10 Creators Update, the "Always duck" mode is no longer available in NVDA's Audio ducking settings. It is still available on older windows 10 releases. (#6684)
- Due to changes in the Windows 10 Creators Update, the "Duck when outputting speech and sounds" mode can no longer ensure audio has ducked fully before starting to speak, nor will it keep audio ducked long enough after speaking to stop rappid bouncing in volume. These changes do not affect older windows 10 releases. (#6684)

### Bug Fixes

- Fixed freeze in Microsoft Word when moving by paragraph through a large document while in browse mode. (#6368)
- Tables in Microsoft Word that have been copied from Microsoft Excel are no longer treeted as layout tables and therefore are no longer ignored. (#5927)
- When trying to type in Microsoft Excel while in protected view, NVDA now makes a sound rather than speaking characters that were not actually typed. (#6570)
- Pressing escape in Microsoft Excel no longer incorrectly switches to browse mode, unless the user has previously switched to browse mode explicitly with NVDA+space and then entered focus mode by pressing enter on a form field. (#6569)
- NVDA no longer freezes in Microsoft Excel spreadsheets where an entire row or column is merged. (#6216)
- Reporting of cropped/overflowed text in Microsoft Excel cells should now be more accurate. (#6472)
- NVDA now reports when a check box is read-only. (#6563)
- The NVDA launcher will no longer show a warning dialog when it can't play the logo sound due to no audio device being available. (#6289)
- Controls in the Microsoft Excel Ribbon that are unavailable are now reported as such. (#6430)
- NVDA will no longer announce "pane" when minimizing windows. (#6671)
- Typed characters are now spoken in Universal Windows Platform (UWP) apps (including Microsoft Edge) in the Windows 10 Creators Update. (#6017)
- Mouse tracking now works across all screens on computers with multiple monitors. (#6598)
- NVDA no longer becomes unusable after exiting Windows Media Player while focused on a slider control. (#5467)

### Changes for Developers

- Profiles and configuration files are now automatically upgraded to meet the requirements of schema modifications. If there is an error during upgrade, a notification is shown, the configuration is reset and the old configuration file is available in the NVDA log at 'Info' level. (#6470)

## 2016.4

Highlights of this release include improved support for Microsoft Edge; browse mode in the Windows 10 Mail app; and significant improvements to NVDA's dialogs.

### 新功能

- NVDA can now indicate line indentation using tones. This can be configured using the "Line indentation reporting" combo box in NVDA's Document Formatting preferences dialog. (#5906)
- Support for the Orbit Reader 20 braille display. (#6007)
- An option to open the speech viewer window on startup has been added. This can be enabled via a check box in the speech viewer window. (#5050)
- When re-opening the speech viewer window, the location and dimensions will now be restored. (#5050)
- Cross-reference fields in Microsoft Word are now treated like hyperlinks. They are reported as links and can be activated. (#6102)
- Support for the Baum SuperVario2, Baum Vario 340 and HumanWare Brailliant2 braille displays. (#6116)
- Initial support for the Anniversary update of Microsoft Edge. (#6271)
- Browse mode is now used when reading emails in the Windows 10 mail app. (#6271)
- New language: Lithuanian.

### Changes

- Updated liblouis braille translator to 3.0.0. This includes significant enhancements to Unified English Braille. (#6109, #4194, #6220, #6140)
- In the Add-ons Manager, the Disable add-on and Enable add-on buttons now have keyboard shortcuts (alt+d and alt+e, respectively). (#6388)
- Various padding and alignment issues in NVDA's dialogs have been resolved. (#6317, #5548, #6342, #6343, #6349)
- The document formatting dialog has been adjusted so that the contents scrolls. (#6348)
- Adjusted the layout of the Symbol Pronunciation dialog so the full width of the dialog is used for the symbols list. (#6101)
- In browse mode in web browsers, the edit field (e and shift+e) and form field (f and shift+f) single letter navigation commands can now be used to move to read-only edit fields. (#4164)
- In NVDA's Document Formatting settings, "Announce formatting changes after the cursor" has been renamed to "Report formatting changes after the cursor", as it affects braille as well as speech. (#6336)
- Adjusted the appearance of the NVDA "Welcome dialog". (#6350)
- NVDA dialog boxes now have their "ok" and "cancel" buttons aligned to the right of the dialog. (#6333)
- Spin Controls are now used for numeric input fields such as the "Capital pitch change percentage" setting in the Voice Settings dialog. You can enter the desired value or use the up and down arrow keys to adjust the value. (#6099)
- The way IFrames (documents embedded within documents) are reported has been made more consistent across web browsers. IFrames are now reported as "frame" in Firefox. (#6047)

### Bug Fixes

- Fixed a rare error when exiting NVDA while the speech viewer is open. (#5050)
- Image maps now render as expected in browse mode in Mozilla Firefox. (#6051)
- While in the dictionary dialog, pressing the enter key now saves any changes you have made and closes the dialog. Previously, pressing enter did nothing. (#6206)
- Messages are now displayed in braille when changing input modes for an input method (native input/alphanumeric, full shaped/half shaped, etc.). (#5892, #5893)
- When disabling and then immediately re-enabling an add-on or vice versa, the add-on status now correctly reverts to what it was previously. (#6299)
- When using Microsoft Word, page number fields in headers can now be read. (#6004)
- The mouse can now be used to move focus between the symbol list and the edit fields in the symbol pronunciation dialog. (#6312)
- In browse mode in Microsoft Word, Fixed an issue that stops the elements list from appearing when a document contains an invalid hyperlink. (#5886)
- After being closed via the task bar or the alt+F4 shortcut, the speech viewer check box in the NVDA menu will now reflect the actual visibility of the window. (#6340)
- The reload plugins command no longer causes problems for triggered configuration profiles, new documents in web browsers and screen review. (#2892, #5380)
- In the list of languages in NVDA's General Settings dialog, languages such as Aragonese are now displayed correctly on Windows 10. (#6259)
- Emulated system keyboard keys (e.g. a button on a braille display which emulates pressing the tab key) are now presented in the configured NVDA language in input help and the Input Gestures dialog. Previously, they were always presented in English. (#6212)
- Changing the NVDA language (from the General Settings dialog) now has no effect until NVDA is restarted. (#4561)
- It is no longer possible to leave the Pattern field blank for a new speech dictionary entry. (#6412)
- Fixed a rare issue when scanning for serial ports on some systems which made some braille display drivers unusable. (#6462)
- In Microsoft Word, Numbered bullets in table cells are now read when moving by cell. (#6446)
- It is now possible to assign gestures to commands for the Handy Tech braille display driver in the NVDA Input Gestures dialog. (#6461)
- In Microsoft Excel, pressing enter or numpadEnter when navigating a spreadsheet now correctly reports navigation to the next row. (#6500)
- iTunes no longer intermittently freezes forever when using browse mode for the iTunes Store, Apple Music, etc. (#6502)
- Fixed crashes in 64 bit Mozilla and Chrome-based applications. (#6497)
- In Firefox with multi-process enabled, browse mode and editable text fields now function correctly. (#6380)

### Changes for Developers

- It is now possible to provide app modules for executables containing a dot (.) in their names. Dots are replaced with underscores (_). (#5323)
- The new gui.guiHelper module includes utilities to simplify the creation of wxPython GUIs, including automatic management of spacing. This facilitates better visual appearance and consistency, as well as easing creation of new GUIs for blind developers. (#6287)

## 2016.3

Highlights of this release include the ability to disable individual add-ons; support for form fields in Microsoft Excel; significant improvements to reporting of colors; fixes and improvements related to several braille displays; and fixes and improvements to support for Microsoft Word.

### 新功能

- Browse mode can now be used to read PDF documents in Microsoft Edge in the Windows 10 Anniversary Update. (#5740)
- Strikethrough and double-strikethrough are now reported if appropriate in Microsoft Word. (#5800)
- In Microsoft Word, the title of a table is now reported if one has been provided. If there is a description, it can be accessed using the open long description command (NVDA+d) in browse mode. (#5943)
- In Microsoft Word, NVDA now reports position information when moving paragraphs (alt+shift+downArrow and alt+shift+upArrow). (#5945)
- In Microsoft Word, line spacing is now reported via NVDA's report formatting command, when changing it with various Microsoft word shortcut keys, and when moving to text with different line spacing if Report Line Spacing is turned on in NVDA's Document Formatting Settings. (#2961)
- In Internet Explorer, HTML5 structural elements are now recognised. (#5591)
- Reporting of comments (such as in Microsoft Word) can now be disabled via a Report Comments checkbox in NVDA's Document Formatting settings dialog. (#5108)
- It is now possible to disable individual add-ons in the Add-ons Manager. (#3090)
- Additional key assignments have been added for ALVA BC640/680 series braille displays. (#5206)
- There is now a command to move the braille display to the current focus. Currently, only the ALVA BC640/680 series has a key assigned to this command, but it can be assigned manually for other displays in the Input Gestures dialog if desired. (#5250)
- In Microsoft Excel, you can now interact with form fields. You move to form fields using the Elements List or single letter navigation in browse mode. (#4953)
- You can now assign an input gesture to toggle simple review mode using the Input Gestures dialog. (#6173)

### Changes

- NVDA now reports colors using a basic well-understood set of 9 color hues and 3 shades, with brightness and paleness variations. This is rather than using more subjective and less understood color names. (#6029)
- The existing NVDA+F9 then NVDA+F10 behavior has been modified to select text on the first press of F10. When F10 is pressed twice (in quick succession) the text is copied to the clipboard. (#4636)
- Updated eSpeak NG to version Master 11b1a7b (22 June 2016). (#6037)

### Bug Fixes

- In browse mode in Microsoft Word, copying to the clipboard now preserves formatting. (#5956)
- In Microsoft Word, NVDA now reports appropriately when using Word's own table navigation commands (alt+home, alt+end, alt+pageUp and alt+pageDown) and table selection commands (shift added to the navigation commands). (#5961)
- In Microsoft Word dialog boxes, NVDA's object navigation has been greatly improved. (#6036)
- In some applications such as Visual Studio 2015, shortcut keys (e.g. control+c for Copy) are now reported as expected. (#6021)
- Fixed a rare issue when scanning for serial ports on some systems which made some braille display drivers unusable. (#6015)
- Reporting colors in Microsoft Word is now more accurate as changes in Microsoft Office Themes are now taken into account. (#5997)
- Browse mode for Microsoft Edge and support for Start Menu search suggestions is again available on Windows 10 builds after April 2016. (#5955)
- In Microsoft Word, automatic table header reading works better when dealing with merged cells. (#5926)
- In the Windows 10 Mail app, NVDA no longer fails to read the content of messages. (#5635)
- When speak command keys is on, lock keys such as caps lock are no longer announced twice. (#5490)
- Windows User Account Control dialogs are again read correctly in the Windows 10 Anniversary update. (#5942)
- In the Web Conference Plugin (such as used on out-of-sight.net) NVDA no longer beeps and speaks progress bar updates related to microphone input. (#5888)
- Performing a Find Next or Find Previous command in Browse Mode will now correctly do a case sensitive search if the original Find was case sensitive. (#5522)
- When editing dictionary entries, feedback is now given for invalid regular expressions. NVDA no longer crashes if a dictionary file contains an invalid regular expression. (#4834)
- If NVDA is unable to communicate with a braille display (e.g. because it has been disconnected), it will automatically disable use of the display. (#1555)
- Slightly improved performance of filtering in the Browse Mode Elements List in some cases. (#6126)
- In Microsoft Excel, the background pattern names reported by NVDA now match those used by Excel. (#6092)
- Improved support for the Windows 10 logon screen, including announcement of alerts and activating of the password field with touch. (#6010)
- NVDA now correctly detects the secondary routing buttons on ALVA BC640/680 series braille displays. (#5206)
- NVDA can again report Windows Toast notifications in recent builds of Windows 10. (#6096)
- NVDA no longer occasionally stops recognising key presses on Baum compatible and HumanWare Brailliant B braille displays. (#6035)
- If reporting of line numbers is enabled in NVDA's Document Formatting preferences, line numbers are now shown on a braille display. (#5941)
- When speech mode is off, reporting objects (such as pressing NVDA+tab to report the focus) now appears in the Speech Viewer as expected. (#6049)
- In the Outlook 2016 message list, associated draft information is no longer reported. (#6219)
- In Google Chrome and Chrome-based browsers in a language other than English, browse mode no longer fails to work in many documents. (#6249)

### Changes for Developers

- Logging information directly from a property no longer results in the property being called recursively over and over again. (#6122)

## 2016.2.1

This release fixes crashes in Microsoft Word:

- NVDA no longer causes Microsoft Word to crash immediately after it starts in Windows XP. (#6033)
- Removed reporting of grammar errors, as this causes crashes in Microsoft Word. (#5954, #5877)

## 2016.2

Highlights of this release include the ability to indicate spelling errors while typing; support for reporting grammar errors in Microsoft Word; and improvements and fixes to Microsoft Office support.

### 新功能

- In browse mode in Internet Explorer and other MSHTML controls, using first letter navigation to move by annotation (a and shift+a) now moves to inserted and deleted text. (#5691)
- In Microsoft Excel, NVDA now reports the level of a group of cells, as well as whether it is collapsed or expanded. (#5690)
- Pressing the Report text formatting command (NVDA+f) twice presents the information in browse mode so it can be reviewed. (#4908)
- In Microsoft Excel 2010 and later, cell shading and gradient fill is now reported. Automatic reporting is controlled by the Report colors option in NVDA's Document Formatting preferences. (#3683)
- New braille translation table: Koine Greek. (#5393)
- In the Log Viewer, you can now save the log using the shortcut key control+s. (#4532)
- If reporting of spelling errors is enabled and supported in the focused control, NVDA will play a sound to alert you of a spelling error made while typing. This can be disabled using the new "Play sound for spelling errors while typing" option in NVDA's Keyboard Settings dialog. (#2024)
- Grammar errors are now reported in Microsoft Word. This can be disabled using the new "Report grammar errors" option in NVDA's Document Formatting preferences dialog. (#5877)

### Changes

- In browse mode and editable text fields, NVDA now treats numpadEnter the same as the main enter key. (#5385)
- NVDA has switched to the eSpeak NG speech synthesizer. (#5651)
- In Microsoft Excel, NVDA no longer ignores a column header for a cell when there is a blank row between the cell and the header. (#5396)
- In Microsoft Excel, coordinates are now announced before headers to eliminate ambiguity between headers and content. (#5396)

### Bug Fixes

- In browse mode, when attempting to use single letter navigation to move to an element which isn't supported for the document, NVDA reports that this isn't supported rather than reporting that there is no element in that direction. (#5691)
- When listing sheets in the Elements List in Microsoft Excel, sheets containing only charts are now included. (#5698)
- NVDA no longer reports extraneous information when switching windows in a Java application with multiple windows such as IntelliJ or Android Studio. (#5732)
- In Scintilla based editors such as Notepad++, braille is now updated correctly when moving the cursor using a braille display. (#5678)
- NVDA no longer sometimes crashes when enabling braille output. (#4457)
- In Microsoft Word, paragraph indentation is now always reported in the measurement unit chosen by the user (e.g. centimeters or inches). (#5804)
- When using a braille display, many NVDA messages that were previously only spoken are now brailled as well. (#5557)
- In accessible Java applications, the level of tree view items is now reported. (#5766)
- Fixed crashes in Adobe Flash in Mozilla Firefox in some cases. (#5367)
- In Google Chrome and Chrome-based browsers, documents within dialogs or applications can now be read in browse mode. (#5818)
- In Google Chrome and Chrome-based browsers, you can now force NVDA to switch to browse mode in web dialogs or applications. (#5818)
- In Internet Explorer and other MSHTML controls, moving focus to certain controls (specifically, where aria-activedescendant is used) no longer incorrectly switches to browse mode. This occurred, for example, when moving to suggestions in address fields when composing a message in Gmail. (#5676)
- In Microsoft Word, NVDA no longer freezes in large tables when reporting of table row/column headers is enabled. (#5878)
- In Microsoft word, NVDA no longer incorrectly reports text with an outline level (but not a built-in heading style) as a heading. (#5186)
- In browse mode in Microsoft Word, the Move past end/to start of container commands (comma and shift+comma) now work for tables. (#5883)

### Changes for Developers

- NVDA's C++ components are now built with Microsoft Visual Studio 2015. (#5592)
- You can now present a text or HTML message to the user in browse mode using ui.browseableMessage. (#4908)
- In the User Guide, when a

## 2016.1

Highlights of this release include the ability to optionally lower the volume of other sounds; improvements to braille output and braille display support; several significant fixes to Microsoft Office support; and fixes to browse mode in iTunes.

### 新功能

- New braille translation tables: Polish 8 dot computer braille, Mongolian. (#5537, #5574)
- You can turn off the braille cursor and change its shape using the new Show cursor and Cursor shape options in the Braille Settings dialog. (#5198)
- NVDA can now connect to a HIMS Smart Beetle braille display via Bluetooth. (#5607)
- NVDA can optionally lower the volume of other sounds when installed on Windows 8 and later. This can be configured using the Audio ducking mode option in the NVDA Synthesizer dialog or by pressing NVDA+shift+d. (#3830, #5575)
- Support for the APH Refreshabraille in HID mode and the Baum VarioUltra and Pronto! when connected via USB. (#5609)
- Support for HumanWare Brailliant BI/B braille displays when the protocol is set to OpenBraille. (#5612)

### Changes

- Reporting of emphasis is now disabled by default. (#4920)
- In the Elements List dialog in Microsoft Excel, the shortcut for Formulas has been changed to alt+r so that it is different to the shortcut for the Filter field. (#5527)
- Updated liblouis braille translator to 2.6.5. (#5574)
- The word "text" is no longer reported when moving the focus or review cursor to text objects. (#5452)

### Bug Fixes

- In iTunes 12, browse mode now updates correctly when a new page loads in the iTunes Store. (#5191)
- In Internet Explorer and other MSHTML controls, moving to specific heading levels with single letter navigation now behaves as expected when the level of a heading is overridden for accessibility purposes (specifically, when aria-level overrides the level of an h tag). (#5434)
- In Spotify, focus no longer frequently lands on "unknown" objects. (#5439)
- Focus is now restored correctly when returning to Spotify from another application. (#5439)
- When toggling between browse mode and focus mode, the mode is reported in braille as well as speech. (#5239)
- The Start buttn on the Taskbar is no longer reported as a list and/or as selected in some versions of Windows. (#5178)
- Messages such as "inserted" are no longer reported when composing messages in Microsoft Outlook. (#5486)
- When using a braille display and text is selected on the current line (e.g. when searching in a text editor for text which occurs on the same line), the braille display will be scrolled if appropriate. (#5410)
- NVDA no longer silently exits when closing a Windows command console with alt+f4 in Windows 10. (#5343)
- In the Elements List in browse mode, when you change the type of element, the Filter by field is now cleared. (#5511)
- In editable text in Mozilla applications, moving the mouse again reads the appropriate line, word, etc. as expected instead of the entire content. (#5535)
- When moving the mouse in editable text in Mozilla applications, reading no longer stops at elements such as links within the word or line being read. (#2160, #5535)
- In Internet Explorer, the shoprite.com website can now be read in browse mode instead of reporting as blank. (Specifically, malformed lang attributes are now handled gracefully.) (#5569)
- In Microsoft Word, tracked changes such as "inserted" are no longer reported when track changes markup is not displayed. (#5566)
- When a toggle button is focused, NVDA now reports when it is changed from pressed to not pressed. (#5441)
- Reporting of mouse shape changes again works as expected. (#5595)
- When speaking line indentation, non-breaking spaces are now treated as normal spaces. Previously, this could cause announcements such as "space space space" instead of "3 space". (#5610)
- When closing a modern Microsoft input method candidate list, focus is correctly restored to either the input composition or the underlying document. (#4145)
- In Microsoft Office 2013 and later, when the ribbon is set to show only tabs, items in the ribbon are again reported as expected when a tab is activated. (#5504)
- Fixes and improvements to touch screen gesture detection and binding. (#5652)
- Touch screen hovers are no longer reported in input help. (#5652)
- NVDA no longer fails to list comments in the Elements List for Microsoft Excel if a comment is on a merged cell. (#5704)
- In a very rare case, NVDA no longer fails to read sheet content in Microsoft Excel with reporting of row and column headers enabled. (#5705)
- In Google Chrome, navigating within an Input composition when entering east Asian characters now works as expected. (#4080)
- When searching Apple Music in iTunes, browse mode for the search results document is now updated as expected. (#5659)
- In Microsoft Excel, pressing shift+f11 to create a new sheet now reports your new position instead of reporting nothing. (#5689)
- Fixed problems with braille display output when entering Korean characters. (#5640)

### Changes for Developers

- The new audioDucking.AudioDucker class allows code which outputs audio to indicate when background audio should be ducked. (#3830)
- nvwave.WavePlayer's constructor now has a wantDucking keyword argument which specifies whether background audio should be ducked while audio is playing. (#3830)
  - When this is enabled (which is the default), it is essential that WavePlayer.idle be called when appropriate.
- Enhanced I/O for braille displays: (#5609)
  - Thread-safe braille display drivers can declare themselves as such using the BrailleDisplayDriver.isThreadSafe attribute. A driver must be thread-safe to benefit from the following features.
  - Data is written to thread-safe braille display drivers in the background, thus improving performance.
  - hwIo.Serial extends pyserial to call a callable when data is received instead of drivers having to poll.
  - hwIo.Hid provides support for braille displays communicating via USB HID.
  - hwPortUtils and hwIo can optionally provide detailed debug logging, including devices found and all data sent and received.
- There are several new properties accessible from touch screen gestures: (#5652)
  - MultitouchTracker objects now contain a childTrackers property which contains the MultiTouchTrackers the tracker was composed of. For example, 2 finger double tap has child trackers for two 2-finger taps. The 2-finger taps themselves have child trackers for two taps.
  - MultiTouchTracker objects now also contain a rawSingleTouchTracker property if the tracker was the result of one single finger doing a tap, flick or hover. The SingleTouchTracker allows access to the underlying ID assigned to the finger by the operating system and whether or not the finger is still in contact at the current time.
  - TouchInputGestures now have x and y properties, removing the need to access the tracker for trivial cases.
  - TouchInputGesturs now contain a preheldTracker property, which is a MultitouchTracker object representing the other fingers held while this action was being performed.
- Two new touch screen gestures can be emitted: (#5652)
  - Plural tap and holds (e.g. double tap and hold)
  - A generalized identifier with finger count removed for holds (e.g. hold+hover for 1finger_hold+hover).

## 2015.4

Highlights of this release include performance improvements in Windows 10; inclusion in the Ease of Access Center in Windows 8 and later; enhancements for Microsoft Excel, including listing and renaming of sheets and access to locked cells in protected sheets; and support for editing of rich text in Mozilla Firefox, Google Chrome and Mozilla Thunderbird.

### 新功能

- NVDA now appears in the Ease of Access Center in Windows 8 and later. (#308)
- When moving around cells in Excel, formatting changes are now automatically reported if the appropriate options are turned on in NVDA's Document Formatting Settings dialog. (#4878)
- A Report Emphasis option has been added to NVDA's Document formatting settings dialog. On by default, this option allows NVDA to automatically report the existence of emphasised text in documents. So far, this is only supported for em and strong tags in Browse Mode for Internet Explorer and other MSHTML controls. (#4920)
- The existence of inserted and deleted text is now reported in Browse Mode for Internet Explorer and other MSHTML controls if NVDA's Report Editor Revisions option is enabled. (#4920)
- When viewing track changes in NVDA's Elements List for Microsoft Word, more information such as what formatting properties were changed is now displayed. (#4920)
- Microsoft Excel: listing and renaming of sheets is now possible from NVDA's Elements List (NVDA+f7). (#4630, #4414)
- It is now possible to configure whether actual symbols are sent to speech synthesizers (e.g. to cause a pause or change in inflection) in the Symbol Pronunciation dialog. (#5234)
- In Microsoft Excel, NVDA now reports any input messages set by the sheet author on cells. (#5051)
- Support for the Baum Pronto! V4 and VarioUltra braille displays when connected via Bluetooth. (#3717)
- Support for editing of rich text in Mozilla applications such as Google Docs with braille support enabled in Mozilla Firefox and HTML composition in Mozilla Thunderbird. (#1668)
- Support for editing of rich text in Google Chrome and Chrome-based browsers such as Google Docs with braille support enabled. (#2634)
  - This requires Chrome version 47 or later.
- In browse mode in Microsoft Excel, you can navigate to locked cells in protected sheets. (#4952)

### Changes

- The Report Editor Revisions option in NVDA's Document formatting settings dialog is now turned on by default. (#4920)
- When moving by character in Microsoft Word with NVDA's Report Editor Revisions option enabled, less information is now reported for track changes, which makes navigation more efficient. To view the extra information, use the Elements List. (#4920)
- Updated liblouis braille translator to 2.6.4. (#5341)
- Several symbols (including basic mathematical symbols) have been moved to level some so that they are spoken by default. (#3799)
- If the synthesizer supports it, speech should now pause for parentheses and the en dash (–). (#3799)
- When selecting text, the text is reported before the indication of selection instead of after. (#1707)

### Bug Fixes

- Major performance improvements when navigating the Outlook 2010/2013 message list. (#5268)
- In a chart in Microsoft Excel, navigating with certain keys (such as changing sheets with control+pageUp and control+pageDown) now works correctly. (#5336)
- Fixed the visual appearance of the buttons in the warning dialog which is displayed when you attempt to downgrade NVDA. (#5325)
- In Windows 8 and later, NVDA now starts a lot earlier when configured to start after logging on to Windows. (#308)
  - If you enabled this using a previous version of NVDA, you will need to disable it and enable it again in order for the change to take effect. Follow this procedure:
    1. Open the General Settings dialog.
    2. Uncheck the Automatically start NVDA after I log on to Windows checkbox.
    3. Press the OK button.
    4. Open the General Settings dialog again.
    5. Check the Automatically start NVDA after I log on to Windows checkbox.
    6. Press the OK button.
- Performance enhancements for UI Automation including File Explorer and Task Viewer. (#5293)
- NVDA now correctly switches to focus mode when tabbing to read-only ARIA grid controls in Browse Mode for Mozilla Firefox and other Gecko-based controls. (#5118)
- NVDA now correctly reports "no previous" instead of "no next" when there are no more objects when flicking left on a touch screen.
- Fixed problems when typing multiple words into the filter field in the Input Gestures dialog. (#5426)
- NVDA no longer freezes in some cases when reconnecting to a HumanWare Brailliant BI/B series display via USB. (#5406)
- In languages with conjunct characters, character descriptions now work as expected for upper case English characters. (#5375)
- NVDA should no longer occasionally freeze when bringing up the Start Menu in Windows 10. (#5417)
- In Skype for Desktop, notifications which are displayed before a previous notification disappears are now reported. (#4841)
- Notifications are now reported correctly in Skype for Desktop 7.12 and later. (#5405)
- NVDA now correctly reports the focus when dismissing a context menu in some applications such as Jart. (#5302)
- In Windows 7 and later, Color is again reported in certain applications such as Wordpad. (#5352)
- When editing in Microsoft PowerPoint, pressing enter now reports automatically entered text such as a bullet or number. (#5360)

## 2015.3

Highlights of this release include initial support for Windows 10; the ability to disable single letter navigation in browse mode (useful for some web apps); improvements in Internet Explorer; and fixes for garbled text when typing in certain applications with braille enabled.

### 新功能

- The existence of spelling errors is announced in editable fields for Internet Explorer and other MSHTML controls. (#4174)
- Many more Unicode math symbols are now spoken when they appear in text. (#3805)
- Search suggestions in the Windows 10 start screen are automatically reported. (#5049)
- Support for the EcoBraille 20, EcoBraille 40, EcoBraille 80 and EcoBraille Plus braille displays. (#4078)
- In browse mode, you can now toggle single letter navigation on and off by pressing NVDA+shift+space. When off, single letter keys are passed to the application, which is useful for some web applications such as Gmail, Twitter and Facebook. (#3203)
- New braille translation tables: Finnish 6 dot, Irish grade 1, Irish grade 2, Korean grade 1 (2006), Korean grade 2 (2006). (#5137, #5074, #5097)
- The QWERTY keyboard on the Papenmeier BRAILLEX Live Plus braille display is now supported. (#5181)
- Experimental support for the Microsoft Edge web browser and browsing engine in Windows 10. (#5212)
- New language: Kannada.

### Changes

- Updated liblouis braille translator to 2.6.3. (#5137)
- When attempting to install an earlier version of NVDA than is currently installed, you will now be warned that this is not recommended and that NVDA should be completely uninstalled before proceeding. (#5037)

### Bug Fixes

- In browse mode for Internet Explorer and other MSHTML controls, quick navigation by form field no longer incorrectly includes presentational list items. (#4204)
- In Firefox, NVDA no longer inappropriately reports the content of an ARIA tab panel when focus moves inside it. (#4638)
- In Internet Explorer and other MSHTML controls, tabbing into sections, articles or dialogs no longer inappropriately reports all content in the container. (#5021, #5025)
- When using Baum/HumanWare/APH braille displays with a braille keyboard, braille input no longer stops functioning after pressing another type of key on the display. (#3541)
- In Windows 10, extraneous information is no longer reported when pressing alt+tab or alt+shift+tab to switch between applications. (#5116)
- Typed text is no longer garbled when using certain applications such as Microsoft Outlook with a braille display. (#2953)
- In browse mode in Internet Explorer and other MSHTML controls, the correct content is now reported when an element appears or changes and is immediately focused. (#5040)
- In browse mode in Microsoft Word, single letter navigation now updates the braille display and the review cursor as expected. (#4968)
- In braille, extraneous spaces are no longer displayed between or after indicators for controls and formatting. (#5043)
- When an application is responding slowly and you switch away from that application, NVDA is now much more responsive in other applications in most cases. (#3831)
- Windows 10 Toast notifications are now reported as expected. (#5136)
- The value is now reported as it changes in certain (UI Automation) combo boxes where this was not working previously.
- In browse mode in web browsers, tabbing now behaves as expected after tabbing to a frame document. (#5227)
- The Windows 10 lock screen can now be dismissed using a touch screen. (#5220)
- In Windows 7 and later, text is no longer garbled when typing in certain applications such as Wordpad and Skype with a braille display. (#4291)
- On the Windows 10 lock screen, it is no longer possible to read the clipboard, access running applications with the review cursor, change NVDA configuration, etc. (#5269)

### Changes for Developers

- You can now inject raw input from a system keyboard that is not handled natively by Windows (e.g. a QWERTY keyboard on a braille display) using the new keyboardHandler.injectRawKeyboardInput function. (#4576)
- eventHandler.requestEvents has been added to request particular events that are blocked by default; e.g. show events from a specific control or certain events even when in the background. (#3831)
- Rather than a single i18nName attribute, synthDriverHandler.SynthSetting now has separate displayNameWithAccelerator and displayName attributes to avoid reporting of the accelerator in the synth settings ring in some languages.
  - For backwards compatibility, in the constructor, displayName is optional and will be derived from displayNameWithAccelerator if not provided. However, if you intend to have an accelerator for a setting, both should be provided.
  - The i18nName attribute is deprecated and may be removed in a future release.

## 2015.2

Highlights of this release include the ability to read charts in Microsoft Excel and support for reading and interactive navigation of mathematical content.

### New Features

- Moving forward and backward by sentence in Microsoft Word and Outlook is now possible with alt+downArrow and alt+upArrow respectively. (#3288)
- New braille translation tables for several Indian languages. (#4778)
- In Microsoft Excel, NVDA now reports when a cell has overflowing or cropped content. (#3040)
- In Microsoft Excel, you can now use the Elements List (NVDA+f7) to allow listing of charts, comments and formulas. (#1987)
- Support for reading charts in Microsoft Excel. To use this, select the chart using the Elements List (NVDA+f7) and then use the arrow keys to move between the data points. (#1987)
- Using MathPlayer 4 from Design Science, NVDA can now read and interactively navigate mathematical content in web browsers and in Microsoft Word and PowerPoint. See the "Reading Mathematical Content" section in the User Guide for details. (#4673)
- It is now possible to assign input gestures (keyboard commands, touch gestures, etc.) for all NVDA preferences dialogs and document formatting options using the Input Gestures dialog. (#4898)

### Changes

- In NVDA's Document Formatting dialog, the keyboard shortcuts for Report lists, Report links, Report line numbers and Report font name have been changed. (#4650)
- In NVDA's Mouse Settings dialog, keyboard shortcuts have been added for play audio coordinates when mouse moves and brightness controls audio coordinates volume. (#4916)
- Significantly improved reporting of color names. (#4984)
- Updated liblouis braille translator to 2.6.2. (#4777)

### Bug Fixes

- Character descriptions are now handled correctly for conjunct characters in certain Indian languages. (#4582)
- If the "Trust voice's language when processing characters and symbols" option is enabled, the Punctuation/Symbol pronunciation dialog now correctly uses the voice language. Also, the language for which pronunciation is being edited is shown in the dialog's title. (#4930)
- In Internet Explorer and other MSHTML controls, typed characters are no longer inappropriately announced in editable combo boxes such as the Google search field on the Google home page. (#4976)
- When selecting colors in Microsoft Office applications, color names are now reported. (#3045)
- Danish braille output now works again. (#4986)
- PageUp/pageDown can again be used to change slides within a PowerPoint slide show. (#4850)
- In Skype for Desktop 7.2 and later, typing notifications are now reported and problems immediately after moving focus out of a conversation have been fixed. (#4972)
- Fixed problems when typing certain punctuation/symbols such as brackets into the filter field in the Input Gestures dialog. (#5060)
- In Internet Explorer and other MSHTML controls, pressing g or shift+g to navigate to graphics now includes elements marked as images for accessibility purposes (i.e. ARIA role img). (#5062)

### Changes for Developers

- brailleInput.handler.sendChars(mychar) will no longer filter out a character if it is equal to the previous character by ensuring that the key sent is correctly released. (#4139)
- Scripts for changing touch modes will now honor new labeles added to touchHandler.touchModeLabels. (#4699)
- Add-ons can provide their own math presentation implementations. See the mathPres package for details. (#4509)
- Speech commands have been implemented to insert a break between words and to change the pitch, volume and rate. See BreakCommand, PitchCommand, VolumeCommand and RateCommand in the speech module. (#4674)
  - There is also speech.PhonemeCommand to insert specific pronunciation, but the current implementations only support a very limited number of phonemes.

## 2015.1

Highlights of this release include browse mode for documents in Microsoft Word and Outlook; major enhancements to support for Skype for Desktop; and significant fixes for Microsoft Internet Explorer.

### New Features

- You can now add new symbols in the Symbol Pronunciation dialog. (#4354)
- In the Input Gestures dialog, you can use the new "Filter by" field to show only gestures containing specific words. (#4458)
- NVDA now automatically reports new text in mintty. (#4588)
- In the browse mode Find dialog, there is now an option to perform a case sensitive search. (#4584)
- Quick navigation (pressing h to move by heading, etc.) and Elements List (NVDA+f7) are now available in Microsoft Word documents by turning on browse mode with NVDA+space. (#2975)
- Reading HTML messages in Microsoft Outlook 2007 and later has been majorly improved as Browse mode is automatically enabled for these messages. If browse mode is not enabled in some rare situations, you can force it on with NVDA+space. (#2975)
- Table column headers in Microsoft word are automatically reported for tables where a header row has been explicitly specified by the author via Microsoft word's table properties. (#4510)
  - However, For tables where rows have been merged, this will not work automatically. In this situation, you can still set column headers manually in NVDA with NVDA+shift+c.
- In Skype for Desktop, notifications are now reported. (#4741)
- In Skype for Desktop, you can now report and review recent messages using NVDA+control+1 through NVDA+control+0; e.g. NVDA+control+1 for the most recent message and NVDA+control+0 for the tenth most recent. (#3210)
- In a conversation in Skype for Desktop, NVDA now reports when a contact is typing. (#3506)
- NVDA can now be installed silently via the command line without starting the installed copy after installation. To do this, use the --install-silent option. (#4206)
- Support for the Papenmeier BRAILLEX Live 20, BRAILLEX Live and BRAILLEX Live Plus braille displays. (#4614)

### Changes

- In NVDA's Document Formatting settings dialog, the option to report spelling errors now has a shortcut key (alt+r). (#793)
- NVDA will now use the synthesizer/voice's language for character and symbol processing (including punctuation/symbol names), regardless of whether automatic language switching is turned on. To turn off this feature so that NVDA again uses its interface language, uncheck the new option in Voice settings called Trust Voice's language when processing characters and symbols. (#4210)
- Support for the Newfon synthesizer has been removed. Newfon is now available as an NVDA add-on. (#3184)
- Skype for Desktop 7 or later is now required for use with NVDA; earlier versions are not supported. (#4218)
- Downloading of NVDA updates is now more secure. (Specifically, the update information is retrieved via https and the hash of the file is verified after it is downloaded.) (#4716)
- eSpeak has been upgraded to version 1.48.04 (#4325)

### Bug Fixes

- In Microsoft Excel, merged row and column header cells are now handled correctly. For example, if A1 and B1 are merged, then B2 will now have A1 and B1 reported as its column header rather than nothing at all. (#4617)
- When editing the content of a text box in Microsoft PowerPoint 2003, NVDA will correctly report the content of each line. Previously, in each paragraph, lines would increasingly be off by one character. (#4619)
- All of NVDA's dialogs are now centred on the screen, improving visual presentation and usability. (#3148)
- In Skype for desktop, when entering an introductory message to add a contact, entering and moving through the text now works correctly. (#3661)
- When focus moves to a new item in tree views in the Eclipse IDE, if the previously focused item is a check box, it is no longer incorrectly announced. (#4586)
- In the Microsoft Word spell check dialog, the next error will be automatically reported when the last one has been changed or ignored using respective shortcut keys. (#1938)
- Text can again be read correctly in places such as Tera Term Pro's terminal window and documents in Balabolka. (#4229)
- Focus now correctly returns to the document being edited When finishing input composition of text in Korean and other east Asian languages while editing within a frame in Internet Explorer and other MSHTML documents. (#4045)
- In the Input Gestures dialog, when selecting a keyboard layout for a keyboard gesture being added, pressing escape now closes the menu as expected instead of closing the dialog. (#3617)
- When removing an add-on, the add-on directory is now correctly deleted after restarting NVDA. Previously, you had to restart twice. (#3461)
- Major problems have been fixed when using Skype for Desktop 7. (#4218)
- When you send a message in Skype for Desktop, it is no longer read twice. (#3616)
- In Skype for Desktop, NVDA should no longer occasionally spuriously read a large flood of messages (perhaps even an entire conversation). (#4644)
- fixed a problem where NVDA's Report date/time command did not honor the regional settings specified by the user in some cases. (#2987)
- In browse mode, nonsensical text (sometimes spanning several lines) is no longer presented for certain graphics such as found on Google Groups. (Specifically, this occurred with base64 encoded images.) (#4793)
- NVDA should no longer freeze after a few seconds when moving focus away from a Windows Store app as it becomes suspended. (#4572)
- The aria-atomic attribute on live regions in Mozilla Firefox is now honored even when the atomic element itself changes. Previously, it only affected descendant elements. (#4794)
- Browse mode will reflect updates, and live regions will be announced, for browse mode documents within ARIA applications embedded in a document in Internet Explorer or other MSHTML controls. (#4798)
- When text is changed or added in live regions in Internet Explorer and other MSHTML controls where the author has specified that text is relevant, only the changed or added text is announced, rather than all of the text in the containing element. (#4800)
- Content indicated by the aria-labelledby attribute on elements in Internet Explorer and other MSHTML controls correctly replaces the original content where it is appropriate to do so. (#4575)
- When checking spelling in Microsoft Outlook 2013, the misspelled word is now announced. (#4848)
- In Internet Explorer and other MSHTML controls, content inside elements hidden with visibility:hidden is no longer inappropriately presented in browse mode. (#4839, #3776)
- In Internet Explorer and other MSHTML controls, the title attribute on form controls no longer inappropriately takes preference over other label associations. (#4491)
- In Internet Explorer and other MSHTML controls, NVDA no longer ignores focusing of elements due to the aria-activedescendant attribute. (#4667)

### Changes for Developers

- Updated wxPython to 3.0.2.0. (#3763)
- Updated Python to 2.7.9. (#4715)
- NVDA no longer crashes when restarting after removing or updating an add-on which imports speechDictHandler in its installTasks module. (#4496)

## 2014.4

### New Features

- New languages: Colombian Spanish, Punjabi.
- It is now possible to restart NVDA or restart NVDA with add-ons disabled from NVDA's exit dialog. (#4057)
  - NVDA can also be started with add-ons disabled by using the --disable-addons command line option.
- In speech dictionaries, it is now possible to specify that a pattern should only match if it is a whole word; i.e. it does not occur as part of a larger word. (#1704)

### Changes

- If an object you have moved to with object navigation is inside a browse mode document, but the object you were on previously was not, the review mode is automatically set to document. Previously, this only happened if the navigator object was moved due to the focus changing. (#4369)
- The Braille display and Synthesizer lists in the respective settings dialogs are now alphabetically sorted except for No braille/No speech, which are now at the bottom. (#2724)
- Updated liblouis braille translator to 2.6.0. (#4434, #3835)
- In browse mode, pressing e and shift+e to navigate to edit fields now includes editable combo boxes. This includes the search box in the latest version of Google Search. (#4436)
- Clicking the NVDA icon in the Notification Area with the left mouse button now opens the NVDA menu instead of doing nothing. (#4459)

### Bug Fixes

- When moving focus back to a browse mode document (e.g. alt+tabbing to an already opened web page), the review cursor is properly positioned at the virtual caret, rather than the focused control (e.g. a nearby link). (#4369)
- In PowerPoint slide shows, the review cursor correctly follows the virtual caret. (#4370)
- In Mozilla Firefox and other Gecko-based browsers, new content within a live region will be announced even if the new content has a usable ARIA live type different to the parent live region; e.g. when content marked as assertive is added to a live region marked as polite. (#4169)
- In Internet Explorer and other MSHTML controls, some cases where a document is contained within another document no longer prevent the user from accessing some of the content (specifically, framesets inside framesets). (#4418)
- NVDA no longer crashes when attempting to use a Handy Tech braille display in some cases. (#3709)
- In Windows Vista, a spurious "Entry Point Not Found" dialog is no longer displayed in several cases such as when starting NVDA from the Desktop shortcut or via the shortcut key. (#4235)
- Serious problems with editable text controls in dialogs in recent versions of Eclipse have been fixed. (#3872)
- In Outlook 2010, moving the caret now works as expected in the location field of appointments and meeting requests. (#4126)
- Inside a live region, content which is marked as not being live (e.g. aria-live="off") is now correctly ignored. (#4405)
- When reporting the text of a status bar that has a name, the name is now correctly separated from the first word of the status bar text. (#4430)
- In password entry fields with speaking of typed words enabled, multiple asterisks are no longer pointlessly reported when beginning new words. (#4402)
- In the Microsoft Outlook message list, items are no longer pointlessly announced as Data Items. (#4439)
- When selecting text in the code editing control in the Eclipse IDE, the entire selection is no longer announced every time the selection changes. (#2314)
- Various versions of Eclipse, such as Spring Tool Suite and the version included in the Android Developer Tools bundle, are now recognised as Eclipse and handled appropriately. (#4360, #4454)
- Mouse tracking and touch exploration in Internet Explorer and other MSHTML controls (including many Windows 8 applications) is now much more accurate on high DPI displays or when document zoom is changed. (#3494)
- Mouse tracking and touch exploration in Internet Explorer and other MSHTML controls will now announce the label of more buttons. (#4173)
- When using a Papenmeier BRAILLEX braille display with BrxCom, keys on the display now work as expected. (#4614)

### Changes for Developers

- For executables which host many different apps (e.g. javaw.exe), code can now be provided to load specific app modules for each app instead of loading the same app module for all hosted apps. (#4360)
  - See the code documentation for appModuleHandler.AppModule for details.
  - Support for javaw.exe is implemented.

## 2014.3

### New Features

- The sounds played when NVDA starts and exits can be disabled via a new option in the General Settings dialog. (#834)
- Help for add-ons can be accessed from the Add-ons Manager for add-ons which support this. (#2694)
- Support for the Calendar in Microsoft Outlook 2007 and above (#2943) including:
  - Announcement of the current time when moving around with the arrow keys.
  - Indication if the selected time is within any appointments.
  - announcement of the selected appointment when pressing tab.
  - Smart filtering of the date so as to only announce the date if the new selected time or appointment is on a different day to the last.
- Enhanced support for the Inbox and other message lists in Microsoft Outlook 2010 and above (#3834) including:
  - The ability to silence column headers (from, subject, etc.) by turning off the Report Table row and column headers option in Document Formatting settings.
  - The ability to use table navigation commands (control + alt + arrows) to move through the individual columns.
- Microsoft word: If an inline image has no alternative text set, NVDA will instead report the title of the image if the author has provided one. (#4193)
- Microsoft Word: NVDA can now report paragraph indenting with the report formatting command (NVDA+f). It can also be reported automatically when the new Report Paragraph indenting option is enabled in Document Formatting settings. (#4165)
- Report automatically inserted text such as a new bullet, number or tab indent when pressing enter in editable documents and text fields. (#4185)
- Microsoft word: Pressing NVDA+alt+c will report the text of a comment if the cursor is within one. (#3528)
- Improved support for automatic column and row header reading in Microsoft Excel (#3568) including:
  - Support of Excel defined name ranges to identify header cells (compatible with Jaws screen reader) .
  - The set column header (NVDA+shift+c) and set row header (NVDA+shift+r) commands now store the settings in the worksheet so that they are available the next time the sheet is opened, and will be available to other screen readers that support the defined name range scheme.
  - These commands can also now be used multiple times per sheet to set different headers for different regions.
- Support for automatic column and row header reading in Microsoft Word (#3110) including:
- Support of Microsoft Word bookmarks to identify header cells (compatible with Jaws screen reader).
- set column header (NVDA+shift+c) and set row header (NVDA+shift+r) commands while on the first header cell in a table allow you to tell NVDA that these headers should be reported automatically. Settings are stored in the document so that they are available the next time the document is opened, and will be available to other screen readers that support the bookmark scheme.
- Microsoft Word: Report the distance from the left edge of the page when the tab key is pressed. (#1353)
- Microsoft Word: provide feedback in speech and braille for most available formatting shortcut keys (bold, italic, underline, alignment, outline level, superscript, subscript and font size). (#1353)
- Microsoft Excel: If the selected cell contains comments, they can be now reported by pressing NVDA+alt+c. (#2920)
- Microsoft Excel: Provide an NVDA-specific dialog to edit the comments on the currently selected cell when pressing Excel's shift+f2 command to enter comment editing mode. (#2920)
- Microsoft Excel: speech and braille feedback for many more selection movement shortcuts (#4211) including:
  - Vertical page movement (pageUp and pageDown);
  - Horizontal page movement (alt+pageUp and alt+pageDown);
  - Extend selection (the above keys with Shift added); and
  - Selecting the current region (control+shift+8).
- Microsoft Excel: The vertical and horizontal alignment for cells can now be reported with the report formatting command (NVDA+f). It can also be reported automatically if the Report alignment option in Document Formatting settings is enabled. (#4212)
- Microsoft Excel: The style of a cell can now be reported with the report formatting command (NVDA+f). It can also be reported automatically if the Report Style option in Document formatting settings is enabled. (#4213)
- Microsoft PowerPoint: when moving shapes around a slide with the arrow keys, the shape's current location is now reported (#4214) including:
  - The distance between the shape and each of the slide edges is reported.
  - If the shape covers or is covered by another shape, then the distance overlapped and the overlapped shape are reported.
  - To report this information at any time without moving a shape, press the report location command (NVDA+delete).
  - When selecting a shape, if it is covered by another shape, NVDA will report that it is obscured.
- The report location command (NVDA+delete) is more context specific in some situations. (#4219)
  - In standard edit fields and browse mode, the cursor position as a percentage through the content and its screen coordinates are reported.
  - On shapes in PowerPoint Presentations, position of the shape relative to the slide and other shapes is reported.
  - Pressing this command twice will produce the previous behaviour of reporting the location information for the entire control.
- New language: Catalan.

### Changes

- Updated liblouis braille translator to 2.5.4. (#4103)

### Bug Fixes

- In Google Chrome and Chrome-based browsers, certain chunks of text (such as those with emphasis) are no longer repeated when reporting the text of an alert or dialog. (#4066)
- In browse mode in Mozilla applications, pressing enter on a button, etc. no longer fails to activate it (or activates the wrong control) in certain cases such as the buttons at the top of Facebook. (#4106)
- Useless information is no longer announced when tabbing in iTunes. (#4128)
- In certain lists in iTunes such as the Music list, moving to the next item using object navigation now works correctly. (#4129)
- HTML elements considered headings because of WAI ARIA markup are now included in the Browse mode Elements list and quick navigation for Internet Explorer documents. (#4140)
- Following same-page links in recent versions of Internet Explorer now correctly moves to and reports the destination position in browse mode documents. (#4134)
- Microsoft Outlook 2010 and above: Overall access to secure dialogs such as the New profiles and mail setup dialogs has been improved. (#4090, #4091, #4095)
- Microsoft Outlook: Useless verbosity has been decreased in command toolbars when navigating through certain dialogs. (#4096, #3407)
- Microsoft word: Tabbing to a blank cell in a table no longer incorrectly announces exiting the table. (#4151)
- Microsoft Word: The first character past the end of a table (including a new blank line) is no longer incorrectly considered to be inside the table. (#4152)
- Microsoft Word 2010 spell check dialog: The actual misspelled word is reported rather than inappropriately reporting just the first bold word. (#3431)
- In browse mode in Internet Explorer and other MSHTML controls, tabbing or using single letter navigation to move to form fields again reports the label in many cases where it didn't (specifically, where HTML label elements are used). (#4170)
- Microsoft Word: Reporting the existence and placement of comments is more accurate. (#3528)
- Navigation of certain dialogs in MS Office products such as Word, Excel and Outlook has been improved by no longer reporting particular control container toolbars which are not useful to the user. (#4198)
- Task panes such as clipboard manager or File recovery no longer accidentilly seem to gain focus when opening an application such as Microsoft Word or Excel, which was sometimes causing the user to have to switch away from and back to the application to use the document or spreadsheet. (#4199)
- NVDA no longer fails to run on recent Windows Operating Systems if the user's Windows language is set to Serbian (Latin). (#4203)
- Pressing numlock while in input help mode now correctly toggles numlock, rather than causing the keyboard and the Operating System to become out of sync in regards to the state of this key. (#4226)
- In Google Chrome, the title of the document is again reported when switching tabs. In NVDA 2014.2, this did not occur in some cases. (#4222)
- In Google Chrome and Chrome-based browsers, the URL of the document is no longer reported when reporting the document. (#4223)
- When running say all with the No speech synthesizer selected (useful for automated testing), say all will now complete instead of stopping after the first few lines. (#4225)
- Microsoft Outlook's Signature dialog: The Signature editing field is now accessible, allowing for full cursor tracking and format detection. (#3833)
- Microsoft Word: When reading the last line of a table cell, the entire table cell is no longer read. (#3421)
- Microsoft Word: When reading the first or last line of a table of contents, the entire table of contents is no longer read. (#3421)
- When speaking typed words and in some other cases, words are no longer incorrectly broken at marks such as vowel signs and virama in Indic languages. (#4254)
- Numeric editable text fields in GoldWave are now handled correctly. (#670)
- Microsoft Word: when moving by paragraph with control+downArrow / control+upArrow, it is no longer necessary to press them twice if moving through bulleted or numbered lists. (#3290)

### Changes for Developers

- NVDA now has unified support for add-on documentation. See the Add-on Documentation section of the Developer Guide for details. (#2694)
- When providing gesture bindings on a ScriptableObject via __gestures, it is now possible to provide the None keyword as the script. This unbinds the gesture in any base classes. (#4240)
- It is now possible to change the shortcut key used to start NVDA for locales where the normal shortcut causes problems. (#2209)
  - This is done via gettext.
  - Note that the text for the Create desktop shortcut option in the Install NVDA dialog, as well as the shortcut key in the User Guide, must also be updated.

## 2014.2

### New Features

- Announcement of text selection is now possible in some custom edit fields where display information is used. (#770)
- In accessible Java applications, position information is now announced for radio buttons and other controls that expose group information. (#3754)
- In accessible Java applications, keyboard shortcuts are now announced for controls that have them. (#3881)
- In browse mode, labels on landmarks are now reported. They are also included in the Elements List dialog. (#1195)
- In browse mode, labelled regions are now treated as landmarks. (#3741)
- In Internet Explorer documents and applications, Live Regions (part of the W3c ARIA standard) are now supported, thus allowing web authors to mark particular content to be automatically spoken as it changes. (#1846)

### Changes

- When exiting a dialog or application within a browse mode document, the browse mode document's name and type is no longer announced. (#4069)

### Bug Fixes

- The standard Windows System menu is no longer accidentally silenced in Java applications. (#3882)
- When copying text from screen review, line breaks are no longer ignored. (#3900)
- Pointless whitespace objects are no longer reported in some applications when the focus changes or when using object navigation with simple review enabled. (#3839)
- Message boxes and other dialogs produced by NVDA again cause previous speech to be canceled before announcing the dialog.
- In browse mode, the labels of controls such as links and buttons are now rendered correctly where the label has been overridden by the author for accessibility purposes (specifically, using aria-label or aria-labelledby). (#1354)
- In Browse mode in Internet Explorer, text contained within an element marked as presentational (ARIA role="presentation") is no longer inappropriately ignored. (#4031)
- It is now again possible to type Vietnamese text using the Unikey software. To do this, uncheck the new Handle keys from other applications checkbox in NVDA's Keyboard settings dialog. (#4043)
- In browse mode, radio and check menu items are reported as controls instead of just clickable text. (#4092)
- NVDA no longer incorrectly switches from focus mode to browse mode when a radio or check menu item is focused. (#4092)
- In Microsoft PowerPoint with speaking of typed words enabled, characters erased with backspace are no longer announced as part of the typed word. (#3231)
- In Microsoft Office 2010 Options dialogs, the labels of combo boxes are reported correctly. (#4056)
- In browse mode in Mozilla applications, using quick navigation commands to move to the next or previous button or form field now includes toggle buttons as expected. (#4098)
- The content of alerts in Mozilla applications is no longer reported twice. (#3481)
- In browse mode, containers and landmarks are no longer inappropriately repeated while navigating within them at the same time as page content is changing (e.g. navigating the Facebook and Twitter websites). (#2199)
- NVDA recovers in more cases when switching away from applications that stop responding. (#3825)
- The caret (insertion point) again correctly updates when doing a sayAll command while in editable text drawn directly to the screen. (#4125)

## 2014.1

### New Features

- Support for Microsoft PowerPoint 2013. Note that protected view is not supported. (#3578)
- In Microsoft word and Excel, NVDA can now read the selected symbol when choosing symbols using the Insert Symbols dialog. (#3538)
- It is now possible to choose if content in documents should be identified as clickable via a new option in the Document Formatting settings dialog. This option is on by default in accordance with the previous behavior. (#3556)
- Support for braille displays connected via Bluetooth on a computer running the Widcomm Bluetooth Software. (#2418)
- When editing text in PowerPoint, hyperlinks are now reported. (#3416)
- When in ARIA applications or dialogs on the web, it is now possible to force NVDA to switch to browse mode with NVDA+space allowing document-style navigation of the application or dialog. (#2023)
- In Outlook Express / Windows Mail / Windows Live Mail, NVDA now reports if a message has an attachment or is flagged. (#1594)
- When navigating tables in accessible Java applications, row and column coordinates are now reported, including column and row headers if they exist. (#3756)

### Changes

- For Papenmeier braille displays, the move to flat review/focus command has been removed. Users can assign their own keys using the Input Gestures dialog. (#3652)
- NVDA now relies on the Microsoft VC runtime version 11, which means it can no longer be run on Operating systems older than Windows XP Service Pack 2 or Windows Server 2003 Service Pack 1.
- Punctuation level Some will now speak star (*) and plus (+) characters. (#3614)
- Upgraded eSpeak to version 1.48.04 which includes many language fixes and fixes several crashes. (#3842, #3739, #3860)

### Bug Fixes

- When moving around or selecting cells in Microsoft Excel, NVDA should no longer inappropriately announce the old cell rather than the new cell when Microsoft Excel is slow to move the selection. (#3558)
- NVDA properly handles opening a dropdown list for a cell in Microsoft Excel via the context menu. (#3586)
- New page content in iTunes 11 store pages is now shown properly in browse mode when following a link in the store or when opening the store initially. (#3625)
- Buttons for previewing songs in the iTunes 11 store now show their label in browse mode. (#3638)
- In browse mode in Google Chrome, the labels of check boxes and radio buttons are now rendered correctly. (#1562)
- In Instantbird, NVDA no longer reports useless information every time you move to a contact in the Contacts list. (#2667)
- In browse mode in Adobe Reader, the correct text is now rendered for buttons, etc. where the label has been overridden using a tooltip or other means. (#3640)
- In browse mode in Adobe Reader, extraneous graphics containing the text "mc-ref" will no longer be rendered. (#3645)
- NVDA no longer reports all cells in Microsoft Excel as underlined in their formatting information. (#3669)
- No longer show meaningless characters in browse mode documents such as those found in the Unicode private usage range. In some cases these were stopping more useful labels from being shown. (#2963)
- Input composition for entering east-asian characters no longer fails in PuTTY. (#3432)
- Navigating in a document after a canceled say all no longer results in NVDA sometimes incorrectly announcing that you have left a field (such as a table) lower in the document that the say all never actually spoke. (#3688)
- When using browse mode quick navigation commands while in say all with skim reading enabled, NVDA more accurately announces the new field; e.g. it now says a heading is a heading, rather than just its text. (#3689)
- The jump to end or start of container quick navigation commands now honor the skim reading during say all setting; i.e. they will no longer cancel the current say all. (#3675)
- Touch gesture names listed in NVDA's Input Gestures dialog are now friendly and localized. (#3624)
- NVDA no longer causes certain programs to crash when moving the mouse over their rich edit (TRichEdit) controls. Programs include Jarte 5.1 and BRfácil. (#3693, #3603, #3581)
- In Internet Explorer and other MSHTML controls, containers such as tables marked as presentation by ARIA are no longer reported to the user. (#3713)
- in Microsoft Word, NVDA no longer inappropriately repeats table row and column information for a cell on a braille display multiple times. (#3702)
- In languages which use a space as a digit group/thousands separator such as French and German, numbers from separate chunks of text are no longer pronounced as a single number. This was particularly problematic for table cells containing numbers. (#3698)
- Braille no longer sometimes fails to update when the system caret is moved in Microsoft Word 2013. (#3784)
- When positioned on the first character of a heading in Microsoft Word, the text communicating it is a heading (including the level) no longer disappears off a braille display. (#3701)
- When a configuration profile is triggered for an application and that application is exited, NVDA no longer sometimes fails to deactivate the profile. (#3732)
- When entering Asian input into a control within NVDA itself (e.g. the browse mode Find dialog), "NVDA" is no longer incorrectly reported in place of the candidate. (#3726)
- The tabs in the Outlook 2013 options dialog are now reported. (#3826)
- Improved support for ARIA live regions in Firefox and other Mozilla Gecko applications:
  - Support for aria-atomic updates and filtering of aria-busy updates. (#2640)
  - Alternative text (such as alt attribute or aria-label) is included if there is no other useful text. (#3329)
  - Live region updates are no longer silenced if they occur at the same time as the focus moves. (#3777)
- Certain presentation elements in Firefox and other Mozilla Gecko applications are no longer inappropriately shown in browse mode (specifically, when the element is marked with aria-presentation but it is also focusable). (#3781)
- A performance improvement when navigating a document in Microsoft Word with spelling errors enabled. (#3785)
- Several fixes to the support for accessible Java applications:
  - The initially focused control in a frame or dialog no longer fails to be reported when the frame or dialog comes to the foreground. (#3753)
  - Unuseful position information is no longer announced for radio buttons (e.g. 1 of 1). (#3754)
  - Better reporting of JComboBox controls (html no longer reported, better reporting of expanded and collapsed states). (#3755)
  - When reporting the text of dialogs, some text that was previously missing is now included. (#3757)
  - Changes to the name, value or description of the focused control is now reported more accurately. (#3770)
- Fix a crash in NVDA seen in Windows 8 when focusing on certain RichEdit controls containing large amounts of text (e.g. NVDA's log viewer, windbg). (#3867)
- On systems with a high DPI display setting (which occurs by default for many modern screens), NVDA no longer routes the mouse to the wrong location in some applications. (#3758, #3703)
- Fixed an occasional problem when browsing the web where NVDA would stop working correctly until restarted, even though it didn't crash or freeze. (#3804)
- A Papenmeier braille display can now be used even if a Papenmeier display has never been connected via USB. (#3712)
- NVDA no longer freezes when the Papenmeier BRAILLEX older models braille display is selected without a display connected.

### Changes for Developers

- AppModules now contain productName and productVersion properties. This info is also now included in Developer Info (NVDA+f1). (#1625)
- In the Python Console, you can now press the tab key to complete the current identifier. (#433)
  - If there are multiple possibilities, you can press tab a second time to choose from a list.

## 2013.3

### New Features

- Form fields are now reported in Microsoft word documents. (#2295)
- NVDA can now announce revision information in Microsoft Word when Track Changes is enabled. Note that Report editor revisions in NVDA's document settings dialog (off by default) must be enabled also for them to be announced. (#1670)
- Dropdown lists in Microsoft Excel 2003 through 2010 are now announced when opened and navigated around. (#3382)
- a new 'Allow Skim Reading in Say All' option in the Keyboard settings dialog allows navigating through a document with browse mode quick navigation and line / paragraph movement commands, while remaining in say all. This option is off by default. (#2766)
- There is now an Input Gestures dialog to allow simpler customization of the input gestures (such as keys on the keyboard) for NVDA commands. (#1532)
- You can now have different settings for different situations using configuration profiles. Profiles can be activated manually or automatically (e.g. for a particular application). (#87, #667, #1913)
- In Microsoft Excel, cells that are links are now announced as links. (#3042)
- In Microsoft Excel, the existence of comments on a cell is now reported to the user. (#2921)

### Bug Fixes

- Zend Studio now functions the same as Eclipse. (#3420)
- The changed state of certain checkboxes in the Microsoft Outlook 2010 message rules dialog are now reported automatically. (#3063)
- NVDA will now report the pinned state for pinned controls such as tabs in Mozilla Firefox. (#3372)
- It is now possible to bind scripts to keyboard gestures containing Alt and/or Windows keys as modifiers. Previously, if this was done, performing the script would cause the Start Menu or menu bar to be activated. (#3472)
- Selecting text in browse mode documents (e.g. using control+shift+end) no longer causes the keyboard layout to be switched on systems with multiple keyboard layouts installed. (#3472)
- Internet Explorer should no longer crash or become unusable when closing NVDA. (#3397)
- Physical movement and other events on some newer computers are no longer treated as inappropriate key presses. Previously, this silenced speech and sometimes triggered NVDA commands. (#3468)
- NVDA now behaves as expected in Poedit 1.5.7. Users using earlier versions will need to update. (#3485)
- NVDA can now read protected documents in Microsoft Word 2010, no longer causing Microsoft Word to crash. (#1686)
- If an unknown command line switch is given when launching the NVDA distribution package, it no longer causes an endless loop of error message dialogs. (#3463)
- NVDA no longer fails to report alt text of graphics and objects in Microsoft Word if the alt text contains quotes or other non-standard characters. (#3579)
- The number of items for certain horizontal lists in Browse mode is now correct. Previously it may have been double the actual amount. (#2151)
- When pressing control+a in a Microsoft Excel worksheet, the updated selection will now be reported. (#3043)
- NVDA can now correctly read XHTML documents in Microsoft Internet Explorer and other MSHTML controls. (#3542)
- Keyboard settings dialog: if no key has been chosen to be used as the NVDA key, an error is presented to the user when dismissing the dialog. At least one key must be chosen for proper usage of NVDA. (#2871)
- In Microsoft Excel, NVDA now announces merged cells differently to multiple selected cells. (#3567)
- The browse mode cursor is no longer positioned incorrectly when leaving a dialog or application inside the document. (#3145)
- Fixed an issue where the HumanWare Brailliant BI/B series braille display driver wasn't presented as an option in the Braille Settings dialog on some systems, even though such a display was connected via USB.
- NVDA no longer fails to switch to screen review when the navigator object has no actual screen location. In this case the review cursor is now placed at the top of the screen. (#3454)
- Fixed an issue which caused the Freedom Scientific braille display driver to fail when the port was set to USB in some circumstances. (#3509, #3662)
- Fixed an issue where keys on Freedom Scientific braille displays weren't detected in some circumstances. (#3401, #3662)

### Changes for Developers

- You can specify the category to be displayed to the user for scripts using the scriptCategory attribute on ScriptableObject classes and the category attribute on script methods. See the documentation for baseObject.ScriptableObject for more details. (#1532)
- config.save is deprecated and may be removed in a future release. Use config.conf.save instead. (#667)
- config.validateConfig is deprecated and may be removed in a future release. Add-ons which need this should provide their own implementation. (#667, #3632)

## 2013.2

### New Features

- Support for the Chromium Embedded Framework, which is a web browser control used in several applications. (#3108)
- New eSpeak voice variant: Iven3.
- In Skype, new chat messages are reported automatically while the conversation is focused. (#2298)
- Support for Tween, including reporting of tab names and less verbosity when reading tweets.
- You can now disable displaying of NVDA messages on a braille display by setting the message timeout to 0 in the Braille Settings dialog. (#2482)
- In the Add-ons Manager, there is now a Get Add-ons button to open the NVDA Add-ons web site where you can browse and download available add-ons. (#3209)
- In the NVDA Welcome dialog which always appears the first time you run NVDA, you can now specify whether NVDA starts automatically after you log on to Windows. (#2234)
- Sleep mode is automatically enabled when using Dolphin Cicero. (#2055)
- The Windows x64 version of Miranda IM/Miranda NG is now supported. (#3296)
- Search suggestions in the Windows 8.1 Start Screen are automatically reported. (#3322)
- Support for navigating and editing spreadsheets in Microsoft Excel 2013. (#3360)
- The Freedom Scientific Focus 14 Blue and Focus 80 Blue braille displays, as well as the Focus 40 Blue in certain configurations that weren't supported previously, are now supported when connected via Bluetooth. (#3307)
- Auto complete suggestions are now reported in Outlook 2010. (#2816)
- New braille translation tables: English (U.K.) computer braille, Korean grade 2, Russian braille for computer code.
- New language: Farsi. (#1427)

### Changes

- On a touch screen, performing a single finger flick left or right when in object mode now moves previous or next through all objects, not just those in the current container. Use 2-finger flick left or right to perform the original action of moving to the previous or next object in the current container.
- the Report layout tables checkbox found in the Browse Mode settings dialog has now been renamed to Include layout tables to reflect that quick navigation also will not locate them if the checkbox is unchecked. (#3140)
- Flat review has been replaced with object, document and screen review modes. (#2996)
  - Object review reviews text just within the navigator object, document review reviews all text in a browse mode document (if any) and screen review reviews text on the screen for the current application.
  - The commands that previously move to/from flat review now toggle between these new review modes.
  - The navigator object automatically follows the review cursor such that it remains the deepest object at the position of the review cursor when in document or screen review modes.
  - After switching to screen review mode, NVDA will stay in this mode until you explicitly switch back to document or object review mode.
  - When in document or object review mode, NVDA may automatically switch between these two modes depending on whether you are moving around a browse mode document or not.
- Updated liblouis braille translator to 2.5.3. (#3371)

### Bug Fixes

- Activating an object now announces the action before the activation, rather than the action after the activation (e.g. expand when expanding rather than collapse). (#2982)
- More accurate reading and cursor tracking in various input fields for recent versions of Skype, such as chat and search fields. (#1601, #3036)
- In the Skype recent conversations list, the number of new events is now read for each conversation if relevant. (#1446)
- Improvements to cursor tracking and reading order for right-to-left text written to the screen; e.g. editing Arabic text in Microsoft Excel. (#1601)
- Quick navigation to buttons and form fields will now locate links marked as buttons for accessibility purposes in Internet Explorer. (#2750)
- In browse mode, the content inside tree views is no longer rendered, as a flattened representation isn't useful. You can press enter on a tree view to interact with it in focus mode. (#3023)
- Pressing alt+downArrow or alt+upArrow to expand a combo box while in focus mode no longer incorrectly switches to browse mode. (#2340)
- In Internet Explorer 10, table cells no longer activate focus mode, unless they have been explicitly made focusable by the web author. (#3248)
- NVDA no longer fails to start if the system time is earlier than the last check for an update. (#3260)
- If a progress bar is shown on a braille display, the braille display is updated when the progress bar changes. (#3258)
- In browse mode in Mozilla applications, table captions are no longer rendered twice. In addition, the summary is rendered when there is also a caption. (#3196)
- When changing input languages in Windows 8, NVDA now speaks the correct language rather than the previous one.
- NVDA now announces IME conversion mode changes in Windows 8.
- NVDA no longer announces garbage on the Desktop when the Google Japanese or Atok IME input methods are in use. (#3234)
- In Windows 7 and above, NVDA no longer inappropriately announces speech recognition or touch input as a keyboard language change.
- NVDA no longer announces a particular special character (0x7f) when pressing control+backspace in some editors when speak typed characters is enabled. (#3315)
- eSpeak no longer inappropriately changes in pitch, volume, etc. when NVDA reads text containing certain control characters or XML. (#3334) (regression of #437)
- In Java applications, changes to the label or value of the focused control are now announced automatically, and are reflected when subsequently querying the control. (#3119)
- In Scintilla controls, lines are now reported correctly when word wrap is enabled. (#885)
- In Mozilla applications, the name of read-only list items is now correctly reported; e.g. when navigating tweets in focus mode on twitter.com. (#3327)
- Confirmation dialogs in Microsoft Office 2013 now have their content automatically read when they appear.
- Performance improvements when navigating certain tables in Microsoft Word. (#3326)
- NVDA's table navigation commands (control+alt+arrows) function better in certain Microsoft Word tables where a cell spans multiple rows.
- If the Add-ons Manager is already open, activating it again (either from the Tools menu or by opening an add-on file) no longer fails or makes it impossible to close the Add-ons Manager. (#3351)
- NVDA no longer freezes in certain dialogs when Japanese or Chinese Office 2010 IME is in use. (#3064)
- Multiple spaces are no longer compressed to just one space on braille displays. (#1366)
- Zend Eclipse PHP Developer Tools now functions the same as Eclipse. (#3353)
- In Internet Explorer, It is again not necessary to press tab to interact with an embedded object (such as Flash content) after pressing enter on it. (#3364)
- When editing text in Microsoft PowerPoint, the last line is no longer reported as the line above, if the final line is blank. (#3403)
- In Microsoft PowerPoint, objects are no longer sometimes spoken twice when you select them or choose to edit them. (#3394)
- NVDA no longer causes Adobe Reader to crash or freeze for certain badly formed PDF documents containing rows outside of tables. (#3399)
- NVDA now correctly detects the next slide with focus when deleting a slide in Microsoft PowerPoint's thumbnails view. (#3415)

### Changes for Developers

- windowUtils.findDescendantWindow has been added to search for a descendant window (HWND) matching the specified visibility, control ID and/or class name.
- The remote Python console no longer times out after 10 seconds while waiting for input. (#3126)
- Inclusion of the bisect module in binary builds is deprecated and may be removed in a future release. (#3368)
  - Add-ons which depend on bisect (including the urllib2 module) should be updated to include this module.

## 2013.1.1

This release fixes the problem where NVDA crashed when started if configured to use the Irish language, as well as including updates to translations and some other bug fixes.

### Bug Fixes

- Correct characters are produced when typing in NVDA's own user interface while using a Korean or Japanese input method while it is the default method. (#2909)
- In Internet Explorer and other MSHTML controls, fields marked as containing an invalid entry are now handled correctly. (#3256)
- NVDA no longer crashes when started if it is configured to use the Irish language.

## 2013.1

Highlights of this release include a more intuitive and consistent laptop keyboard layout; basic support for Microsoft PowerPoint; support for long descriptions in web browsers; and support for input of computer braille for braille displays which have a braille keyboard.

### Important

#### New Laptop Keyboard Layout

The laptop keyboard layout has been completely redesigned in order to make it more intuitive and consistent. The new layout uses the arrow keys in combination with the NVDA key and other modifiers for review commands.

Please note the following changes to commonly used commands:

Name | Key
--- | ---
Say all | NVDA+a
Read current line | NVDA+l
Read current text selection | NVDA+shift+s
Report status bar | NVDA+shift+end

In addition, among other changes, all of the object navigation, text review, mouse click and synth settings ring commands have changed. Please see the Commands Quick Reference document for the new keys.

### New Features

- Basic support for editing and reading Microsoft PowerPoint presentations. (#501)
- Basic support for reading and writing messages in Lotus Notes 8.5. (#543)
- Support for automatic language switching when reading documents in Microsoft Word. (#2047)
- In Browse mode for MSHTML (e.g. Internet Explorer) and Gecko (e.g. Firefox), the existence of long descriptions are now announced. It's also possible to open the long description in a new window by pressing NVDA+d. (#809)
- Notifications in Internet Explorer 9 and above are now spoken (such as content blocking or file downloads). (#2343)
- Automatic reporting of table row and column headers is now supported for browse mode documents in Internet Explorer and other MSHTML controls. (#778)
- New language: Aragonese, Irish
- New braille translation tables: Danish grade 2, Korean grade 1. (#2737)
- Support for braille displays connected via bluetooth on a computer running the Bluetooth Stack for Windows by Toshiba. (#2419)
- Support for port selection when using Freedom Scientific displays (Automatic, USB or Bluetooth).
- Support for the BrailleNote family of notetakers from HumanWare when acting as a braille terminal for a screen reader. (#2012)
- Support for older models of Papenmeier BRAILLEX braille displays. (#2679)
- Support for input of computer braille for braille displays which have a braille keyboard. (#808)
- New keyboard settings that allow the choice for whether NVDA should interrupt speech for typed characters and/or the Enter key. (#698)
- Support for several browsers based on Google Chrome: Rockmelt, BlackHawk, Comodo Dragon and SRWare Iron. (#2236, #2813, #2814, #2815)

### Changes

- Updated liblouis braille translator to 2.5.2. (#2737)
- The laptop keyboard layout has been completely redesigned in order to make it more intuitive and consistent. (#804)
- Updated eSpeak speech synthesizer to 1.47.11. (#2680, #3124, #3132, #3141, #3143, #3172)

### Bug Fixes

- The quick navigation keys for jumping to the next or previous separator in Browse Mode now work in Internet Explorer and other MSHTML controls. (#2781)
- If NVDA falls back to eSpeak or no speech due to the configured speech synthesizer failing when NVDA starts, the configured choice is no longer automatically set to the fallback synthesizer. This means that now, the original synthesizer will be tried again next time NVDA starts. (#2589)
- If NVDA falls back to no braille due to the configured braille display failing when NVDA starts, the configured display is no longer automatically set to no braille. This means that now, the original display will be tried again next time NVDA starts. (#2264)
- In browse mode in Mozilla applications, updates to tables are now rendered correctly. For example, in updated cells, row and column coordinates are reported and table navigation works as it should. (#2784)
- In browse mode in web browsers, certain clickable unlabelled graphics which weren't previously rendered are now rendered correctly. (#2838)
- Earlier and newer versions of SecureCRT are now supported. (#2800)
- For input methods such as Easy Dots IME under XP, the reading string is now correctly reported.
- The candidate list in the Chinese Simplified Microsoft Pinyin input method under Windows 7 is now correctly read when changing pages with left and right arrow, and when first opening it with Home.
- When custom symbol pronunciation information is saved, the advanced "preserve" field is no longer removed. (#2852)
- When disabling automatic checking for updates, NVDA no longer has to be restarted in order for the change to fully take effect.
- NVDA no longer fails to start if an add-on cannot be removed due to its directory currently being in use by another application. (#2860)
- Tab labels in DropBox's preferences dialog can now be seen with Flat Review.
- If the input language is changed to something other than the default, NVDA now detects keys correctly for commands and input help mode.
- For languages such as German where the + (plus) sign is a single key on the keyboard, it is now possible to bind commands to it by using the word "plus". (#2898)
- In Internet Explorer and other MSHTML controls, block quotes are now reported where appropriate. (#2888)
- The HumanWare Brailliant BI/B series braille display driver can now be selected when the display is connected via Bluetooth but has never been connected via USB.
- Filtering elements in the Browse Mode Elements list with uppercase filter text now returns case-insensitive results just like lowercase rather than nothing at all. (#2951)
- In Mozilla browsers, browse mode can again be used when Flash content is focused. (#2546)
- When using a contracted braille table and expand to computer braille for the word at the cursor is enabled, the braille cursor is now positioned correctly when located after a word wherein a character is represented by multiple braille cells (e.g. capital sign, letter sign, number sign, etc.). (#2947)
- Text selection is now correctly shown on a braille display in applications such as Microsoft word 2003 and Internet Explorer edit controls.
- It is again possible to select text in a backward direction in Microsoft Word while Braille is enabled.
- When reviewing, backspacing or deleting characters In Scintilla edit controls, NVDA correctly announces multibyte characters. (#2855)
- NVDA will no longer fail to install when the user's profile path contains certain multibyte characters. (#2729)
- Reporting of groups for List View controls (SysListview32) in 64-bit applications no longer causes an error.
- In browse mode in Mozilla applications, text content is no longer incorrectly treated as editable in some rare cases. (#2959)
- In IBM Lotus Symphony and OpenOffice, moving the caret now moves the review cursor if appropriate.
- Adobe Flash content is now accessible in Internet Explorer in Windows 8. (#2454)
- Fixed Bluetooth support for Papenmeier Braillex Trio. (#2995)
- Fixed inability to use certain Microsoft Speech API version 5 voices such as Koba Speech 2 voices. (#2629)
- In applications using the Java Access Bridge, braille displays are now updated correctly when the caret moves in editable text fields . (#3107)
- Support the form landmark in browse mode documents that support landmarks. (#2997)
- The eSpeak synthesizer driver now handles reading by character more appropriately (e.g. announcing a foreign letter's name or value rather than just its sound or generic name). (#3106)
- NVDA no longer fails to copy user settings for use on logon and other secure screens when the user's profile path contains non-ASCII characters. (#3092)
- NVDA no longer freezes when using Asian character input in some .NET applications. (#3005)
- it is now possible to use browse mode for pages in Internet Explorer 10 when in standards mode; e.g. www.gmail.com login page. (#3151)

### Changes for Developers

- Braille display drivers can now support manual port selection. (#426)
  - This is most useful for braille displays which support connection via a legacy serial port.
  - This is done using the getPossiblePorts class method on the BrailleDisplayDriver class.
- Braille input from braille keyboards is now supported. (#808)
  - Braille input is encompassed by the brailleInput.BrailleInputGesture class or a subclass thereof.
  - Subclasses of braille.BrailleDisplayGesture (as implemented in braille display drivers) can also inherit from brailleInput.BrailleInputGesture. This allows display commands and braille input to be handled by the same gesture class.
- You can now use comHelper.getActiveObject to get an active COM object from a normal process when NVDA is running with the UIAccess privilege. (#2483)

## 2012.3

Highlights of this release include support for Asian character input; experimental support for touch screens on Windows 8; reporting of page numbers and improved support for tables in Adobe Reader; table navigation commands in focused table rows and Windows list-view controls; support for several more braille displays; and reporting of row and column headers in Microsoft Excel.

### New Features

- NVDA can now support Asian character input using IME and text service input methods in all applications, Including:
  - Reporting and navigation of candidate lists;
  - Reporting and navigation of composition strings; and
  - Reporting of reading strings.
- The presence of underline and strikethrough is now reported in Adobe Reader documents. (#2410)
- When the Windows Sticky Keys function is enabled, the NVDA modifier key will now behave like other modifier keys. This allows you to use the NVDA modifier key without needing to hold it down while you press other keys. (#230)
- Automatic reporting of column and row headers is now supported in Microsoft Excel. Press NVDA+shift+c to set the row containing column headers and NVDA+shift+r to set the column containing row headers. Press either command twice in quick succession to clear the setting. (#1519)
- Support for HIMS Braille Sense, Braille EDGE and SyncBraille braille displays. (#1266, #1267)
- When Windows 8 Toast notifications appear, NVDA will report them if reporting of help balloons is enabled. (#2143)
- Experimental support for Touch screens on Windows 8, including:
  - Reading text directly under your finger while moving it around
  - Many gestures for performing object navigation, text review, and other NVDA commands.
- Support for VIP Mud. (#1728)
- In Adobe Reader, if a table has a summary, it is now presented. (#2465)
- In Adobe Reader, table row and column headers can now be reported. (#2193, #2527, #2528)
- New languages: Amharic, Korean, Nepali, Slovenian.
- NVDA can now read auto complete suggestions when entering email addresses in Microsoft Outlook 2007. (#689)
- New eSpeak voice variants: Gene, Gene2. (#2512)
- In Adobe Reader, page numbers can now be reported. (#2534)
  - In Reader XI, page labels are reported where present, reflecting changes to page numbering in different sections, etc. In earlier versions, this is not possible and only sequential page numbers are reported.
- It is now possible to reset NVDA's configuration to factory defaults either by pressing NVDA+control+r three times quickly or by choosing Reset to Factory Defaults from the NVDA menu. (#2086)
- Support for the Seika Version 3, 4 and 5 and Seika80 braille displays from Nippon Telesoft. (#2452)
- The first and last top routing buttons on Freedom Scientific PAC Mate and Focus Braille displays can now be used to scroll backward and forward. (#2556)
- Many more features are supported on Freedom Scientific Focus Braille displays such as advance bars, rocker bars and certain dot combinations for common actions. (#2516)
- In applications using IAccessible2 such as Mozilla applications, table row and column headers can now be reported outside of browse mode. (#926)
- Preliminary support for the document control in Microsoft Word 2013. (#2543)
- Text alignment can now be reported in applications using IAccessible2 such as Mozilla applications. (#2612)
- When a table row or standard Windows list-view control with multiple columns is focused, you can now use the table navigation commands to access individual cells. (#828)
- New braille translation tables: Estonian grade 0, Portuguese 8 dot computer braille, Italian 6 dot computer braille. (#2319, #2662)
- If NVDA is installed on the system, directly opening an NVDA add-on package (e.g. from Windows Explorer or after downloading in a web browser) will install it into NVDA. (#2306)
- Support for newer models of Papenmeier BRAILLEX braille displays. (#1265)
- Position information (e.g. 1 of 4) is now reported for Windows Explorer list items on Windows 7 and above. This also includes any UIAutomation controls that support the itemIndex and itemCount custom properties. (#2643)

### Changes

- In the NVDA Review Cursor preferences dialog, the Follow keyboard focus option has been renamed to Follow system focus for consistency with terminology used elsewhere in NVDA.
- When braille is tethered to review and the cursor is on an object which is not a text object (e.g. an editable text field), cursor routing keys will now activate the object. (#2386)
- The Save Settings On Exit option is now on by default for new configurations.
- When updating a previously installed copy of NVDA, the desktop shortcut key is no longer forced back to control+alt+n if it was manually changed to something different by the user. (#2572)
- The add-ons list in the Add-ons Manager now shows the package name before its status. (#2548)
- If installing the same or another version of a currently installed add-on, NVDA will ask if you wish to update the add-on, rather than just showing an error and aborting installation. (#2501)
- Object navigation commands (except the report current object command) now report with less verbosity. You can still obtain the extra information by using the report current object command. (#2560)
- Updated liblouis braille translator to 2.5.1. (#2319, #2480, #2662, #2672)
- The NVDA Key Commands Quick Reference document has been renamed to Commands Quick Reference, as it now includes touch commands as well as keyboard commands.
- The Elements list in Browse mode will now remember the last element type shown (e.g. links, headings or landmarks) each time the dialog is shown within the same session of NVDA. (#365)
- Most Metro apps in Windows 8 (e.g. Mail, Calendar) no longer activate Browse Mode for the entire app.
- Updated Handy Tech BrailleDriver COM-Server to 1.4.2.0.

### Bug Fixes

- In Windows Vista and later, NVDA no longer incorrectly treats the Windows key as being held down when unlocking Windows after locking it by pressing Windows+l. (#1856)
- In Adobe Reader, row headers are now correctly recognised as table cells; i.e. coordinates are reported and they can be accessed using table navigation commands. (#2444)
- In Adobe Reader, table cells spanning more than one column and/or row are now handled correctly. (#2437, #2438, #2450)
- The NVDA distribution package now checks its integrity before executing. (#2475)
- Temporary download files are now removed if downloading of an NVDA update fails. (#2477)
- NVDA will no longer freeze when it is running as an administrator while copying the user configuration to the system configuration (for use on Windows logon and other secure screens). (#2485)
- Tiles on the Windows 8 Start Screen are now presented better in speech and braille. The name is no longer repeated, unselected is no longer reported on all tiles, and live status information is presented as the description of the tile (e.g. current temperature for the Weather tile).
- Passwords are no longer announced when reading password fields in Microsoft Outlook and other standard edit controls that are marked as protected. (#2021)
- In Adobe Reader, changes to form fields are now correctly reflected in browse mode. (#2529)
- Improvements to support for the Microsoft Word Spell Checker, including more accurate reading of the current spelling error, and the ability to support the spell checker when running an Installed copy of NVDA on Windows Vista or higher.
- Add-ons which include files containing non-English characters can now be installed correctly in most cases. (#2505)
- In Adobe Reader, the language of text is no longer lost when it is updated or scrolled to. (#2544)
- When installing an add-on, the confirmation dialog now correctly shows the localized name of the add-on if available. (#2422)
- In applications using UI Automation (such as .net and Silverlight applications), the calculation of numeric values for controls such as sliders has been corrected. (#2417)
- The configuration for reporting of progress bars is now honoured for the indeterminate progress bars displayed by NVDA when installing, creating a portable copy, etc. (#2574)
- NVDA commands can no longer be executed from a braille display while a secure Windows screen (such as the Lock screen) is active. (#2449)
- In browse mode, braille is now updated if the text being displayed changes. (#2074)
- When on a secure Windows screen such as the Lock screen, messages from applications speaking or displaying braille directly via NVDA are now ignored.
- In Browse mode, it is no longer possible to fall off the bottom of the document with the right arrow key when on the final character, or by jumping to the end of a container when that container is the last item in the document. (#2463)
- Extraneous content is no longer incorrectly included when reporting the text of dialogs in web applications (specifically, ARIA dialogs with no aria-describedby attribute). (#2390)
- NVDA no longer incorrectly reports or locates certain edit fields in MSHTML documents (e.g. Internet Explorer), specifically where an explicit ARIA role has been used by the web page author. (#2435)
- The backspace key is now handled correctly when speaking typed words in Windows command consoles. (#2586)
- Cell coordinates in Microsoft Excel are now shown again in Braille.
- In Microsoft Word, NVDA no longer leaves you stuck on a paragraph with list formatting when trying to navigate out over a bullet or number with left arrow or control + left arrow. (#2402)
- In browse mode in Mozilla applications, the items in certain list boxes (specifically, ARIA list boxes) are no longer incorrectly rendered.
- In browse mode in Mozilla applications, certain controls that were rendered with an incorrect label or just whitespace are now rendered with the correct label.
- In browse mode in Mozilla applications, some extraneous whitespace has been eliminated.
- In browse mode in web browsers, certain graphics that are explicitly marked as presentational (specifically, with an alt="" attribute) are now correctly ignored.
- In web browsers, NVDA now hides content which is marked as hidden from screen readers (specifically, using the aria-hidden attribute). (#2117)
- Negative currency amounts (e.g. -$123) are now correctly spoken as negative, regardless of symbol level. (#2625)
- During say all, NVDA will no longer incorrectly revert to the default language where a line does not end a sentence. (#2630)
- Font information is now correctly detected in Adobe Reader 10.1 and later. (#2175)
- In Adobe Reader, if alternate text is provided, only that text will be rendered. Previously, extraneous text was sometimes included. (#2174)
- Where a document contains an application, the content of the application is no longer included in browse mode. This prevents unexpectedly moving inside the application when navigating. You can interact with the application in the same way as for embedded objects. (#990)
- In Mozilla applications, the value of spin buttons is now correctly reported when it changes. (#2653)
- Updated support for Adobe Digital Editions so that it works in version 2.0. (#2688)
- Pressing NVDA+upArrow while on a combo box in Internet Explorer and other MSHTML documents will no longer incorrectly read all items. Rather, just the active item will be read. (#2337)
- Speech dictionaries will now properly save when using a number (#) sign within the pattern or replacement fields. (#961)
- Browse mode for MSHTML documents (e.g. Internet Explorer) now correctly displays visible content contained within hidden content (specifically, elements with a style of visibility:visible inside an element with style visibility:hidden). (#2097)
- Links in Windows XP's Security Center no longer report random junk after their names. (#1331)
- UI Automation text controls (e.g. the search field in the Windows 7 Start Menu) are now correctly announced when moving the mouse over them rather than staying silent.
- Keyboard layout changes are no longer reported during say all, which was particularly problematic for multilingual documents including Arabic text. (#1676)
- The entire content of some UI Automation editable text controls (e.g. the Search Box in the Windows 7/8 Start Menu) is no longer announced every time it changes.
- When moving between groups on the Windows 8 start screen, unlabeled groups no longer announce their first tile as the name of the group. (#2658)
- When opening the Windows 8 start screen, the focus is correctly placed on the first tile, rather than jumping to the root of the start screen which can confuse navigation. (#2720)
- NVDA will no longer fail to start when the user's profile path contains certain multibyte characters. (#2729)
- In browse mode in Google Chrome, the text of tabs is now rendered correctly.
- In browse mode, menu buttons are now reported correctly.
- In OpenOffice.org/LibreOffice Calc, reading spreadsheet cells now works correctly. (#2765)
- NVDA can again function in the Yahoo! Mail message list when used from Internet Explorer. (#2780)

### Changes for Developers

- Previous log file is now copied to nvda-old.log on NVDA initialization. Therefore, if NVDA crashes or is restarted, logging information from that session is still accessible for inspection. (#916)
- Fetching the role property in chooseNVDAObjectOverlayClasses no longer causes the role to be incorrect and thus not reported on focus for certain objects such as Windows command consoles and Scintilla controls. (#2569)
- The NVDA Preferences, Tools and Help menus are now accessible as attributes on gui.mainFrame.sysTrayIcon named preferencesMenu, toolsMenu and helpMenu, respectively. This allows plugins to more easily add items to these menus.
- The navigatorObject_doDefaultAction script in globalCommands has been renamed to review_activate.
- Gettext message contexts are now supported. This allows multiple translations to be defined for a single English message depending on the context. (#1524)
  - This is done using the pgettext(context, message) function.
  - This is supported for both NVDA itself and add-ons.
  - xgettext and msgfmt from GNU gettext must be used to create any PO and MO files. The Python tools do not support message contexts.
  - For xgettext, pass the --keyword=pgettext:1c,2 command line argument to enable inclusion of message contexts.
  - See http://www.gnu.org/software/gettext/manual/html_node/Contexts.html#Contexts for more information.
- It is now possible to access built-in NVDA modules where they have been overridden by third party modules. See the nvdaBuiltin module for details.
- Add-on translation support can now be used within the add-on installTasks module. (#2715)

## 2012.2.1

This release addresses several potential security issues (by upgrading Python to 2.7.3).

## 2012.2

Highlights of this release include an in-built installer and portable creation feature, automatic updates, easy management of new NVDA add-ons, announcement of graphics in Microsoft Word, support for Windows 8 Metro style apps, and several important bug fixes.

### New Features

- NVDA can now automatically check for, download and install updates. (#73)
- Extending NVDA's functionality has been made easier with the addition of an Add-ons Manager (found under Tools in the NVDA menu) allowing you to install and uninstall new NVDA add-on packages (.nvda-addon files) containing plugins and drivers. Note the Add-on manager does not show older custom plugins and drivers manually copied in to your configuration directory. (#213)
- Many more common NVDA features now work in Windows 8 Metro style apps when using an installed release of NVDA, including speaking of typed characters, and browse mode for web documents (includes support for metro version of Internet Explorer 10). Portable copies of NVDA cannot access metro style apps. (#1801)
- In browse mode documents (Internet Explorer, Firefox, etc.), you can now jump to the start and past the end of certain containing elements (such as lists and tables) with shift+, and , respectively. (#123)
- New language: Greek.
- Graphics and alt text are now reported in Microsoft Word Documents. (#2282, #1541)

### Changes

- Announcement of cell coordinates in Microsoft Excel is now after the content rather than before, and is now only included if the report tables and report table cell coordinates settings are enabled in the Document formatting settings dialog. (#320)
- NVDA is now distributed in one package. Rather than separate portable and installer versions, there is now just one file that, when run, will start a temporary copy of NVDA and will allow you to install or generate a portable distribution. (#1715)
- NVDA is now always installed in to Program Files on all systems. Updating a previous install will also automatically move it if it was not previously installed there.

### Bug Fixes

- With auto language switching enabled, Content such as alt text for graphics and labels for other certain controls in Mozilla Gecko (e.g. Firefox) are now reported in the correct language if marked up appropriately.
- SayAll in BibleSeeker (and other TRxRichEdit controls) no longer stops in the middle of a passage.
- Lists found in the Windows 8 Explorer file properties (permitions tab) and in Windows 8 Windows Update now read correctly.
- Fixed possible freezes in MS Word which would result when it took more than 2 seconds to fetch text from a document (extremely long lines or tables of contents). (#2191)
- Detection of word breaks now works correctly where whitespace is followed by certain punctuation. (#1656)
- In browse mode in Adobe Reader, it is now possible to navigate to headings without a level using quick navigation and the Elements List. (#2181)
- In Winamp, braille is now correctly updated when you move to a different item in the Playlist Editor. (#1912)
- The tree in the Elements List (available for browse mode documents) is now properly sized to show the text of each element. (#2276)
- In applications using the Java Access Bridge, editable text fields are now presented correctly in braille. (#2284)
- In applications using the java Access Bridge, editable text fields no longer report strange characters in certain circumstances. (#1892)
- In applications using the Java Access Bridge, when at the end of an editable text field, the current line is now reported correctly. (#1892)
- In browse mode in applications using Mozilla Gecko 14 and later (e.g. Firefox 14), quick navigation now works for block quotes and embedded objects. (#2287)
- In Internet Explorer 9, NVDA no longer reads unwanted content when focus moves inside certain landmarks or focusable elements (specifically, a div element which is focusable or has an ARIA landmark role).
- The NVDA icon for the NVDA Desktop and Start Menu shortcuts is now displayed correctly on 64 bit editions of Windows. (#354)

### Changes for Developers

- Due to the replacement of the previous NSIS installer for NVDA with a built-in installer in Python, it is no longer necessary for translaters to maintain a langstrings.txt file for the installer. All localization strings are now managed by gettext po files.

## 2012.1

Highlights of this release include features for more fluent reading of braille; indication of document formatting in braille; access to much more formatting information and improved performance in Microsoft Word; and support for the iTunes Store.

### New Features

- NVDA can announce the number of leading tabs and spaces of the current line in the order that they are entered. This can be enabled by selecting report line indentation in the document formatting dialogue. (#373)
- NVDA can now detect key presses generated from alternative keyboard input emulation such as on-screen keyboards and speech recognition software.
- NVDA can now detect colors in Windows command consoles.
- Bold, italic and underline are now indicated in braille using signs appropriate to the configured translation table. (#538)
- Much more information is now reported in Microsoft Word documents, including:
  - Inline information such as footnote and endnote numbers, heading levels, the existence of comments, table nesting levels, links, and text color;
  - Reporting when entering document sections such as the comments story, footnotes and endnotes stories, and header and footer stories.
- Braille now indicates selected text using dots 7 and 8. (#889)
- Braille now reports information about controls within documents such as links, buttons and headings. (#202)
- Support for the hedo ProfiLine and MobilLine USB braille displays. (#1863, #1897)
- NVDA now avoids splitting words in braille when possible by default. This can be disabled in the Braille Settings dialog. (#1890, #1946)
- It is now possible to have braille displayed by paragraphs instead of lines, which may allow for more fluent reading of large amounts of text. This is configurable using the Read by paragraphs option in the Braille Settings dialog. (#1891)
- In browse mode, you can activate the object under the cursor using a braille display. This is done by pressing the cursor routing key where the cursor is located (which means pressing it twice if the cursor is not already there). (#1893)
- Basic support for web areas in iTunes such as the Store. Other applications using WebKit 1 may also be supported. (#734)
- In books in Adobe Digital Editions 1.8.1 and later, pages are now turned automatically when using say all. (#1978)
- New braille translation tables: Portuguese grade 2, Icelandic 8 dot computer braille, Tamil grade 1, Spanish 8 dot computer braille, Farsi grade 1. (#2014)
- You can now configure whether frames in documents are reported from the Document Formatting preferences dialog. (#1900)
- Sleep mode is automatically enabled when using OpenBook. (#1209)
- In Poedit, translators can now read translator added and automatically extracted comments. Messages that are untranslated or fuzzy are marked with a star and a beep is heard when you navigate onto them. (#1811)
- Support for the HumanWare Brailliant BI and B series displays. (#1990)
- New languages: Norwegian Bokmål, Traditional Chinese (Hong Kong).

### Changes

- Commands to describe the current character or to spell the current word or line now will spell in the appropriate language according to the text, if auto language switching is turned on and the appropriate language information is available.
- Updated eSpeak speech synthesizer to 1.46.02.
- NVDA will now truncate extremely long (30 characters or greater) names guessed from graphic and link URLs as they are most likely garbage that gets in the way of reading. (#1989)
- Some information displayed in braille has been abbreviated. (#1955, #2043)
- When the caret or review cursor moves, braille is now scrolled in the same way as when it is manually scrolled. This makes it more appropriate when braille is configured to read by paragraphs and/or avoid splitting words. (#1996)
- Updated to new Spanish grade 1 braille translation table.
- Updated liblouis braille translator to 2.4.1.

### Bug Fixes

- In Windows 8, focus is no longer incorrectly moved away from the Windows Explorer search field, which was not allowing NVDA to interact with it.
- Major performance improvements when reading and navigating Microsoft Word documents while automatic reporting of formatting is enabled, thus now making it quite comfortable to proof read formatting etc. Performance may be also improved over all for some users.
- Browse mode is now used for full screen Adobe Flash content.
- Fixed poor audio quality in some cases when using Microsoft Speech API version 5 voices with the audio output device set to something other than the default (Microsoft Sound Mapper). (#749)
- Again allow NVDA to be used with the "no speech" synthesizer, relying purely on braille or the speech viewer. (#1963)
- Object navigation commands no longer report "No children" and "No parents", but instead report messages consistent with the documentation.
- When NVDA is configured to use a language other than English, the name of the tab key is now reported in the correct language.
- In Mozilla Gecko (e.g. Firefox), NVDA no longer intermittently switches to browse mode while navigating menus in documents. (#2025)
- In Calculator, the backspace key now reports the updated result instead of reporting nothing. (#2030)
- In browse mode, the move mouse to current navigator object command now routes to the center of the object at the review cursor instead of the top left, making it more accurate it some cases. (#2029)
- In browse mode with automatic focus mode for focus changes enabled, focusing on a toolbar will now switch to focus mode. (#1339)
- The report title command works correctly again in Adobe Reader.
- With automatic focus mode for focus changes enabled, focus mode is now correctly used for focused table cells; e.g. in ARIA grids. (#1763)
- In iTunes, position information in certain lists is now reported correctly.
- In Adobe Reader, some links are no longer treated as containing read-only editable text fields.
- The labels of some editable text fields are no longer incorrectly included when reporting the text of a dialog. (#1960)
- The description of groupings is once again reported if reporting of object descriptions is enabled.
- The human readable sizes are now included in the text of the Windows Explorer drive properties dialog.
- Double reporting of property page text has been suppressed in some cases. (#218)
- Improved tracking of the caret in editable text fields which rely on text written to the screen. In particular, this improves editing in the Microsoft Excel cell editor and the Eudora message editor. (#1658)
- In Firefox 11, the move to containing virtual buffer command (NVDA+control+space) now works as it should to escape embedded objects such as Flash content.
- NVDA now restarts itself correctly (e.g. after changing the configured language) when it is located in a directory which contains non-ASCII characters. (#2079)
- Braille correctly respects the settings for reporting of object shortcut keys, position information and descriptions.
- In Mozilla applications, switching between browse and focus modes is no longer slow with braille enabled. (#2095)
- Routing the cursor to the space at the end of the line/paragraph using braille cursor routing keys in some editable text fields now works correctly instead of routing to the start of the text. (#2096)
- NVDA again works correctly with the Audiologic Tts3 synthesizer. (#2109)
- Microsoft Word documents are correctly treated as multi-line. This causes braille to behave more appropriately when a document is focused.
- In Microsoft Internet Explorer, errors no longer occur when focusing on certain rare controls. (#2121)
- Changing the pronunciation of punctuation/symbols by the user will now take effect straight away, rather than requiring NVDA to be restarted or auto language switching to be disabled.
- When using eSpeak, speech no longer goes silent in some cases in the Save As dialog of the NVDA Log Viewer. (#2145)

### Changes for Developers

- There is now a remote Python console for situations where remote debugging is useful. See the Developer Guide for details.
- The base path of NVDA's code is now stripped from tracebacks in the log to improve readability. (#1880)
- TextInfo objects now have an activate() method to activate the position represented by the TextInfo.
  - This is used by braille to activate the position using cursor routing keys on a braille display. However, there may be other callers in future.
- TreeInterceptors and NVDAObjects which only expose one page of text at a time can support automatic page turns during say all by using the textInfos.DocumentWithPageTurns mix-in. (#1978)
- Several control and output constants have been renamed or moved. (#228)
  - speech.REASON_* constants have been moved to controlTypes.
  - In controlTypes, speechRoleLabels and speechStateLabels have been renamed to just roleLabels and stateLabels, respectively.
- Braille output is now logged at level input/output. First, the untranslated text of all regions is logged, followed by the braille cells of the window being displayed. (#2102)
- subclasses of the sapi5 synthDriver can now override _getVoiceTokens and extend init to support custom voice tokens such as with sapi.spObjectTokenCategory to get tokens from a custom registry location.

## 2011.3

Highlights of this release include automatic speech language switching when reading documents with appropriate language information; support for 64 bit Java Runtime Environments; reporting of text formatting in browse mode in Mozilla applications; better handling of application crashes and freezes; and initial fixes for Windows 8.

### New Features

- NVDA can now change the eSpeak synthesizer language on the fly when reading certain web/pdf documents with appropriate language information. Automatic language/dialect switching can be toggled on and off from the Voice Settings dialog. (#845)
- Java Access Bridge 2.0.2 is now supported, which includes support for 64 bit Java Runtime Environments.
- In Mozilla Gecko (e.g. Firefox) Heading levels are now announced when using object navigation.
- Text formatting can now be reported when using browse mode in Mozilla Gecko (e.g. Firefox and Thunderbird). (#394)
- Text with underline and/or strikethrough can now be detected and reported in standard IAccessible2 text controls such as in Mozilla applications.
- In browse mode in Adobe Reader, table row and column counts are now reported.
- Added support for the Microsoft Speech Platform synthesizer. (#1735)
- Page and line numbers are now reported for the caret in IBM Lotus Symphony. (#1632)
- The percentage of how much the pitch changes when speaking a capital letter is now configurable from the voice settings dialog. However, this does replace the older raise pitch for capitals checkbox (therefore to turn off this feature set the percentage to 0). (#255)
- Text and background color is now included in the reporting of formatting for cells in Microsoft Excel. (#1655)
- In applications using the Java Access Bridge, the activate current navigator object command now works on controls where appropriate. (#1744)
- New language: Tamil.
- Basic support for Design Science MathPlayer.

### Changes

- NVDA will now restart itself if it crashes.
- Some information displayed in braille has been abbreviated. (#1288)
- the Read active window script (NVDA+b) has been improved to filter out unuseful controls and also is now much more easy to silence. (#1499)
- Automatic say all when a browse mode document loads is now optional via a setting in the Browse Mode settings dialog. (#414)
- When trying to read the status bar (Desktop NVDA+end), If a real status bar object cannot be located, NVDA will instead resort to using the bottom line of text written to the display for the active application. (#649)
- When reading with say all in browse mode documents, NVDA will now pause at the end of headings and other block-level elements, rather than speaking the text together with the next lot of text as one long sentence.
- In browse mode, pressing enter or space on a tab now activates it instead of switching to focus mode. (#1760)
- Updated eSpeak speech synthesizer to 1.45.47.

### Bug Fixes

- NVDA no longer shows bullets or numbering for lists in Internet Explorer and other MSHTML controls when the author has indicated that these should not be shown (i.e. the list style is "none"). (#1671)
- Restarting NVDA when it has frozen (e.g. by pressing control+alt+n) no longer exits the previous copy without starting a new one.
- Pressing backspace or arrow keys in a Windows command console no longer causes strange results in some cases. (#1612)
- The selected item in WPF combo boxes (and possibly some other combo boxes exposed using UI Automation) which do not allow text editing is now reported correctly.
- In browse mode in Adobe Reader, it is now always possible to move to the next row from the header row and vice versa using the move to next row and move to previous row commands. Also, the header row is no longer reported as row 0. (#1731)
- In browse mode in Adobe Reader, it is now possible to move to (and therefore past) empty cells in a table.
- Pointless position information (e.g. 0 of 0 level 0) is no longer reported in braille.
- When braille is tethered to review, it is now able to show content in flat review. (#1711)
- A text control's text is no longer presented twice on a braille display in some cases, e.g. scrolling back from the start of Wordpad documents.
- In browse mode in Internet Explorer, pressing enter on a file upload button now correctly presents the dialog to choose a file to upload instead of switching to focus mode. (#1720)
- Dynamic content changes such as in Dos consoles are no longer announced if sleep mode for that application is currently on. (#1662)
- In browse mode, the behaviour of alt+upArrow and alt+downArrow to collapse and expand combo boxes has been improved. (#1630)
- NVDA now recovers from many more situations such as applications that stop responding which previously caused it to freeze completely. (#1408)
- For Mozilla Gecko (Firefox etc) browse mode documents NVDA will no longer fail to render text in a very specific situation where an element is styled as display:table. (#1373)
- NVDA will no longer announce label controls when focus moves inside of them. Stops double announcements of labels for some form fields in Firefox (Gecko) and Internet Explorer (MSHTML). (#1650)
- NVDA no longer fails to read a cell in Microsoft Excel after pasting in to it with control+v. (#1781)
- In Adobe Reader, extraneous information about the document is no longer announced when moving to a control on a different page in focus mode. (#1659)
- In browse mode in Mozilla Gecko applications (e.g. Firefox), toggle buttons are now detected and reported correctly. (#1757)
- NVDA can now correctly read the Windows Explorer Address Bar in Windows 8 developer preview.
- NVDA will no longer crash apps such as winver and wordpad in Windows 8 developer preview due to bad glyph translations.
- In browse mode in applications using Mozilla Gecko 10 and later (e.g. Firefox 10), the cursor is more often positioned correctly when loading a page with a target anchor. (#360)
- In browse mode in Mozilla Gecko applications (e.g. Firefox), labels for image maps are now rendered.
- With mouse tracking enabled, moving the mouse over certain editable text fields (such as in Synaptics Pointing Device Settings and SpeechLab SpeakText) no longer causes the application to crash. (#672)
- NVDA now functions correctly in several about dialogs in applications distributed with Windows XP, including the About dialog in Notepad and the About Windows dialog. (#1853, #1855)
- Fixed reviewing by word in Windows Edit controls. (#1877)
- Moving out of an editable text field with leftArrow, upArrow or pageUp while in focus mode now correctly switches to browse mode when automatic focus mode for caret movement is enabled. (#1733)

### Changes for Developers

- NVDA can now instruct speech synthesizers to switch languages for particular sections of speech.
  - To support this, drivers must handle speech.LangChangeCommand in sequences past to SynthDriver.speak().
  - SynthDriver objects should also provide the language argument to VoiceInfo objects (or override the language attribute to retrieve the current language). Otherwise, NVDA's user interface language will be used.

## 2011.2

Highlights of this release include major improvements concerning punctuation and symbols, including configurable levels, custom labelling and character descriptions; no pauses at the end of lines during say all; improved support for ARIA in Internet Explorer; better support for XFA/LiveCycle PDF documents in Adobe Reader; access to text written to the screen in more applications; and access to formatting and color information for text written to the screen.

### New Features

- It is now possible to hear the description for any given character by pressing the review current character script twice in quick succession. For English characters this is the standard English phonetic alphabet. For pictographic languages such as traditional Chinese, one or more example phrases using the given symbol are provided. Also pressing review current word or review current line three times will spell the word/line using the first of these descriptions. (#55)
- More text can be seen in flat review for applications such as Mozilla Thunderbird that write their text directly to the display as glyphs.
- It is now possible to choose from several levels of punctuation and symbol announcement. (#332)
- When punctuation or other symbols are repeated more than four times, the number of repetitions is now announced instead of speaking the repeated symbols. (#43)
- New braille translation tables: Norwegian 8 dot computer braille, Ethiopic grade 1, Slovene grade 1, Serbian grade 1. (#1456)
- Speech no longer unnaturally pauses at the end of each line when using the say all command. (#149)
- NVDA will now announce whether something is sorted (according to the aria-sort property) in web browsers. (#1500)
- Unicode Braille Patterns are now displayed correctly on braille displays. (#1505)
- In Internet Explorer and other MSHTML controls when focus moves inside a group of controls (surrounded by a fieldset), NVDA will now announce the name of the group (the legend). (#535)
- In Internet Explorer and other MSHTML controls, the aria-labelledBy and aria-describedBy properties are now honoured.
- in Internet Explorer and other MSHTML controls, support for ARIA list, gridcell, slider and progressbar controls has been improved.
- Users can now change the pronunciation of punctuation and other symbols, as well as the symbol level at which they are spoken. (#271, #1516)
- In Microsoft Excel, the name of the active sheet is now reported when switching sheets with control+pageUp or control+pageDown. (#760)
- When navigating a table in Microsoft Word with the tab key NVDA will now announce the current cell as you move. (#159)
- You can now configure whether table cell coordinates are reported from the Document Formatting preferences dialog. (#719)
- NVDA can now detect formatting and color for text written to the screen.
- In the Outlook Express/Windows Mail/Windows Live Mail message list, NVDA will now announce the fact that a message is unread and also if it's expanded or collapsed in the case of conversation threads. (#868)
- eSpeak now has a rate boost setting which triples the speaking rate.
- Support for the calendar control found in the Date and Time Information dialog accessed from the Windows 7 clock. (#1637)
- Additional key bindings have been added for the MDV Lilli braille display. (#241)
- New languages: Bulgarian, Albanian.

### Changes

- To move the caret to the review cursor, now press the move focus to navigator object script (desktop NVDA+shift+numpadMinus, laptop NVDA+shift+backspace) twice in quick succession. This frees up more keys on the keyboard. (#837)
- To hear the decimal and hexadecimal representation of the character under the review cursor, now press review current character three times rather than twice, as twice now speaks the character description.
- Updated eSpeak speech synthesiser to 1.45.03. (#1465)
- Layout tables are no longer announced in Mozilla Gecko applications while moving the focus when in focus mode or outside of a document.
- In Internet Explorer and other MSHTML controls, browse mode now works for documents inside ARIA applications. (#1452)
- Updated liblouis braille translator to 2.3.0.
- When in browse mode and jumping to a control with quicknav or focus, the description of the control is now announced if it has one.
- Progress bars are now announced in brows mode.
- Nodes marked with an ARIA role of presentation in Internet Explorer and other MSHTML controls are now filtered out of simple review and the focus ancestry.
- NVDA's user interface and documentation now refer to virtual buffers as browse mode, as the term "virtual buffer" is rather meaningless to most users. (#1509)
- When the user wishes to copy their user settings to the system profile for use on the logon screen, etc., and their settings contain custom plugins, they are now warned that this could be a security risk. (#1426)
- The NVDA service no longer starts and stops NVDA on user input desktops.
- On Windows XP and Windows Vista, NVDA no longer makes use of UI Automation even if it is available via the platform update. Although using UI Automation can improve the accessibility of some modern applications, on XP and Vista there were too many freezes, crashes and over all performance loss while using it. (#1437)
- In applications using Mozilla Gecko 2 and later (such as Firefox 4 and later), a document can now be read in browse mode before it is fully finished loading.
- NVDA now announces the state of a container when focus moves to a control inside it (e.g. if focus moves inside a document that is still loading it will report it as busy).
- NVDA's user interface and documentation no longer use the terms "first child" and "parent" with respect to object navigation, as these terms are confusing for many users.
- Collapsed is no longer reported for some menu items which have sub-menus.
- The reportCurrentFormatting script (NVDA+f) now reports the formatting at the position of the review cursor rather than the system caret / focus. As by default the review cursor follows the caret, most people should not notice a difference. However this now enables the user to find out the formatting when moving the review cursor, such as in flat review.

### Bug Fixes

- Collapsing combo boxes in browse mode documents when focus mode has been forced with NVDA+space no longer auto-switches back to browse mode. (#1386)
- In Gecko (e.g. Firefox) and MSHTML (e.g. Internet Explorer) documents, NVDA now correctly renders certain text on the same line which was previously rendered on separate lines. (#1378)
- When Braille is tethered to review and the navigator object is moved to a browse mode document, either manually or due to a focus change, braille will appropriately show the browse mode content. (#1406, #1407)
- When speaking of punctuation is disabled, certain punctuation is no longer incorrectly spoken when using some synthesisers. (#332)
- Problems no longer occur when loading configuration for synthesisers which do not support the voice setting such as Audiologic Tts3. (#1347)
- The Skype Extras menu is now read correctly. (#648)
- Checking the Brightness controls volume checkbox in the Mouse Settings dialog should no longer cause a major lag for beeps when moving the mouse around the screen on Windows Vista/Windows 7 with Aero enabled. (#1183)
- When NVDA is configured to use the laptop keyboard layout, NVDA+delete now works as documented to report the dimensions of the current navigator object. (#1498)
- NVDA now Appropriately honours the aria-selected attribute in Internet Explorer documents.
- When NVDA automatically switches to focus mode in browse mode documents, it now announces information about the context of the focus. For example, if a list box item receives focus, the list box will be announced first. (#1491)
- In Internet Explorer and other MSHTML controls, ARIA listbox controls are now treeted as lists, rather than list items.
- When a read-only editable text control receives focus, NVDA now reports that it is read-only. (#1436)
- In browse mode, NVDA now behaves correctly with respect to read-only editable text fields.
- In browse mode documents, NVDA no longer incorrectly switches out of focus mode when aria-activedescendant is set; e.g. when the completion list appeared in some auto complete controls.
- In Adobe Reader, the name of controls is now reported when moving focus or using quick navigation in browse mode.
- In XFA PDF documents in Adobe Reader, buttons, links and graphics are now rendered correctly.
- In XFA PDF documents in Adobe Reader, all elements are now rendered on separate lines. This change was made because large sections (sometimes even the entire document) were being rendered without breaks due to the general lack of structure in these documents.
- Fixed problems when moving focus to or away from editable text fields in XFA PDF documents in Adobe Reader.
- In XFA PDF documents in Adobe Reader, changes to the value of a focused combo box will now be reported.
- Owner-drawn Combo boxes such as the ones to choose colors in Outlook Express are now accessible with NVDA. (#1340)
- In languages which use a space as a digit group/thousands separator such as French and German, numbers from separate chunks of text are no longer pronounced as a single number. This was particularly problematic for table cells containing numbers. (#555)
- nodes with an ARIA role of description in Internet Explorer and other MSHTML controls now are classed as static text, not edit fields.
- Fixed various issues when pressing tab while focus is on a document in browse mode (e.g. tab inappropriately moving to the address bar in Internet Explorer). (#720, #1367)
- When entering lists while reading text, NVDA now says, for example, "list with 5 items" instead of "listwith 5 items". (#1515)
- In input help mode, gestures are logged even if their scripts bypass input help such as the scroll braille display forward and back commands.
- In input help mode, when a modifier is held down on the keyboard, NVDA no longer reports the modifier as if it is modifying itself; e.g. NVDA+NVDA.
- In Adobe Reader documents, pressing c or shift+c to navigate to a combo box now works.
- The selected state of selectable table rows is now reported the same way it is for list and tree view items.
- Controls in Firefox and other Gecko applications can now be activated while in browse mode even if their content has been floated off-screen. (#801)
- You can no longer show an NVDA settings dialog while a message dialog is being shown, as the settings dialog was frozen in this case. (#1451)
- In Microsoft Excel, there is no longer a lag when holding down or rapidly pressing keys to move between or select cells.
- Fixed intermittent crashes of the NVDA service which meant that NVDA stopped running on secure Windows screens.
- Fixed problems that sometimes occurred with braille displays when a change caused text that was being displayed to disappear. (#1377)
- The downloads window in Internet Explorer 9 can now be navigated and read with NVDA. (#1280)
- It is no longer possible to accidentally start multiple copies of NVDA at the same time. (#507)
- On slow systems, NVDA no longer inappropriately causes its main window to be shown all the time while running. (#726)
- NVDA no longer crashes on Windows xP when starting a WPF application. (#1437)
- Say all and say all with review are now able to work in UI automation text controls that support all required functionality. For example, you can now use say all with review on XPS Viewer documents.
- NVDA no longer inappropriately classes some list items in the Outlook Express / Windows Live Mail message rules Apply Now dialog as being checkboxes. (#576)
- Combo boxes are no longer reported as having a sub-menu.
- NVDA is now able to read the recipiants in the To, CC and BCC fields in Microsoft Outlook. (#421)
- Fixed the issue in NVDA's Voice Settings dialog where the value of sliders was sometimes not reported when changed. (#1411)
- NVDA no longer fails to announce the new cell when moving in an Excel spreadsheet after cutting and pasting. (#1567)
- NVDA no longer becomes worse at guessing color names the more colors it announces.
- In Internet Explorer and other MSHTML controls, fixed the inability to read parts of rare pages which contain iframes marked with an ARIA role of presentation. (#1569)
- In Internet Explorer and other MSHTML controls, fixed a rare problem where the focus kept bouncing infinitely between the document and a multi-line editable text field in focus mode. (#1566)
- In Microsoft Word 2010 NVDA will now automatically read confirmation dialogs. (#1538)
- In multi-line editable text fields in Internet Explorer and other MSHTML controls, selection on lines after the first is now reported correctly. (#1590)
- Improved moving by word in many cases, including browse mode and Windows Edit controls. (#1580)
- The NVDA installer no longer shows garbled text for Hong Kong versions of Windows Vista and Windows 7. (#1596)
- NVDA no longer fails to load the Microsoft Speech API version 5 synthesizer if the configuration contains settings for that synthesizer but is missing the voice setting. (#1599)
- In editable text fields in Internet Explorer and other MSHTML controls, NVDA no longer lags or freezes when braille is enabled.
- In firefox brows mode, NVDA no longer refuses to include content that is inside a focusable node with an ARIA role of presentation.
- In Microsoft Word with braille enabled, lines on pages after the first page are now reported correctly. (#1603)
- In Microsoft Word 2003, lines of right-to-left text can once again be read with braille enabled. (#627)
- In Microsoft Word, say all now works correctly when the document does not end with a sentence ending.
- When opening a plain text message in Windows Live Mail 2011, NVDA will correctly focus on the message document allowing it to be read.
- NVDA no longer temporarily freezes or refuses to speak when in the Move to / Copy to dialogs in Windows Live Mail. (#574)
- In Outlook 2010, NVDA will now correctly track the focus in the message list. (#1285)
- Some USB connection issues have been resolved with the MDV Lilli braille display. (#241)
- In Internet explorer and other MSHTML controls, spaces are no longer ignored in browse mode in certain cases (e.g. after a link).
- In Internet Explorer and other MSHTML controls, some extraneous line breaks have been eliminated in browse mode. specifically, HTML elements with a display style of None no longer force a line break. (#1685)
- If NVDA is unable to start, failure to play the Windows critical stop sound no longer clobbers the critical error message in the log file.

### Changes for Developers

- Developer documentation can now be generated using SCons. See readme.txt at the root of the source distribution for details, including associated dependencies.
- Locales can now provide descriptions for characters. See the Character Descriptions section of the Developer Guide for details. (#55)
- Locales can now provide information about the pronunciation of specific punctuation and other symbols. See the Symbol Pronunciation section of the Developer Guide for details. (#332)
- You can now build NVDAHelper with several debugging options using the nvdaHelperDebugFlags SCons variable. See readme.txt at the root of the source distribution for details. (#1390)
- Synth drivers are now passed a sequence of text and speech commands to speak, instead of just text and an index.
  - This allows for embedded indexes, parameter changes, etc.
  - Drivers should implement SynthDriver.speak() instead of SynthDriver.speakText() and SynthDriver.speakCharacter().
  - The old methods will be used if SynthDriver.speak() is not implemented, but they are deprecated and will be removed in a future release.
- gui.execute() has been removed. wx.CallAfter() should be used instead.
- gui.scriptUI has been removed.
  - For message dialogs, use wx.CallAfter(gui.messageBox, ...).
  - For all other dialogs, real wx dialogs should be used instead.
  - A new gui.runScriptModalDialog() function simplifies using modal dialogs from scripts.
- Synth drivers can now support boolean settings. See SynthDriverHandler.BooleanSynthSetting.
- SCons now accepts a certTimestampServer variable specifying the URL of a timestamping server to use to timestamp authenticode signatures. (#1644)

## 2011.1.1

This release fixes several security and other important issues found in NVDA 2011.1.

### Bug Fixes

- The Donate item in the NVDA menu is now disabled when running on the logon, lock, UAC and other secure Windows screens, as this is a security risk. (#1419)
- It is now impossible to copy or paste within NVDA's user interface while on secure desktops (lock screen, UAC screen and windows logon) as this is a security risk. (#1421)
- In Firefox 4, the move to containing virtual buffer command (NVDA+control+space) now works as it should to escape embedded objects such as Flash content. (#1429)
- When speaking of command keys is enabled, shifted characters are no longer incorrectly spoken as command keys. (#1422)
- When speaking of command keys is enabled, pressing space with modifiers other than shift (such as control and alt) is now reported as a command key. (#1424)
- Logging is now completely disabled when running on the logon, lock, UAC and other secure Windows screens, as this is a security risk. (#1435)
- In input help mode, Gestures are now logged even if they are not bound to a script (in accordance with the user guide). (#1425)

## 2011.1

Highlights of this release include automatic reporting of new text output in mIRC, PuTTY, Tera Term and SecureCRT; support for global plugins; announcement of bullets and numbering in Microsoft Word; additional key bindings for braille displays, including keys to move to the next and previous line; support for several Baum, HumanWare and APH braille displays; and reporting of colors for some controls, including IBM Lotus Symphony text controls.

### New Features

- Colors can now be reported for some controls. Automatic announcement can be configured in the Document Formatting preferences dialog. It can also be reported on demand using the report text formatting command (NVDA+f).
  - Initially, this is supported in standard IAccessible2 editable text controls (such as in Mozilla applications), RichEdit controls (such as in Wordpad) and IBM Lotus Symphony text controls.
- In virtual buffers, you can now select by page (using shift+pageDown and shift+pageUp) and paragraph (using shift+control+downArrow and shift+control+upArrow). (#639)
- NVDA now automatically reports new text output in mIRC, PuTTY, Tera Term and SecureCRT. (#936)
- Users can now add new key bindings or override existing ones for any script in NVDA by providing a single user input gesture map. (#194)
- Support for global plugins. Global plugins can add new functionality to NVDA which works across all applications. (#281)
- A small beep is now heard when typing characters with the shift key while capslock is on. This can be turned off by unchecking the related new option in the Keyboard settings dialog. (#663)
- hard page breaks are now announced when moving by line in Microsoft Word. (#758)
- Bullets and numbering are now spoken in Microsoft Word when moving by line. (#208)
- A command to toggle Sleep mode for the current application (NVDA+shift+s) is now available. Sleep mode (previously known as self voicing mode) disables all screen reading functionality in NVDA for a particular application. Very useful for applications that provide their own speech and or screen reading features. Press this command again to disable Sleep mode.
- Some additional braille display key bindings have been added. See the Supported Braille Displays section of the User Guide for details. (#209)
- For the convenience of third party developers, app modules as well as global plugins can now be reloaded without restarting NVDA. Use tools -> Reload plugins in the NVDA menu or NVDA+control+f3. (#544)
- NVDA now remembers the position you were at when returning to a previously visited web page. This applies until either the browser or NVDA is exited. (#132)
- Handy Tech braille displays can now be used without installing the Handy Tech universal driver. (#854)
- Support for several Baum, HumanWare and APH braille displays. (#937)
- The status bar in Media Player Classic Home Cinema is now recognised.
- The Freedom Scientific Focus 40 Blue braille display can now be used when connected via bluetooth. (#1345)

### Changes

- Position information is no longer reported by default in some cases where it was usually incorrect; e.g. most menus, the Running Applications bar, the Notification Area, etc. However, this can be turned on again by an added option in the Object Presentation settings dialog.
- Keyboard help has been renamed to input help to reflect that it handles input from sources other than the keyboard.
- Input Help no longer reports a script's code location via speech and braille as it is cryptic and irrelevant to the user. However, it is now logged for developers and advanced users.
- When NVDA detects that it has frozen, it continues to intercept NVDA modifier keys, even though it passes all other keys through to the system. This prevents the user from unintentionally toggling caps lock, etc. if they press an NVDA modifier key without realising NVDA has frozen. (#939)
- If keys are held down after using the pass next key through command, all keys (including key repeats) are now passed through until the last key is released.
- If an NVDA modifier key is pressed twice in quick succession to pass it through and the second press is held down, all key repeats will now be passed through as well.
- The volume up, down and mute keys are now reported in input help. This could be helpful if the user is uncertain as to what these keys are.
- The hotkey for the Review Cursor item in the NVDA Preferences menu has been changed from r to c to eliminate the conflict with the Braille Settings item.

### Bug Fixes

- When adding a new speech dictionary entry, the title of the dialog is now "Add dictionary entry" instead of "Edit dictionary entry". (#924)
- In speech dictionary dialogs, the content of the Regular expression and Case sensitive columns of the Dictionary entries list is now presented in the configured NVDA language instead of always in English.
- In AIM, position information is now announced in tree views.
- On sliders in the Voice Settings dialog, up arrow/page up/home now increase the setting and down arrow/page down/end decrease it. Previously, the opposite occurred, which is not logical and is inconsistent with the synth settings ring. (#221)
- In virtual buffers with screen layout disabled, some extraneous blank lines no longer appear.
- If an NVDA modifier key is pressed twice quickly but there is an intervening key press, the NVDA modifier key is no longer passed through on the second press.
- Punctuation keys are now spoken in input help even when speaking of punctuation is disabled. (#977)
- In the Keyboard Settings dialog, the keyboard layout names are now presented in the configured NVDA language instead of always in English. (#558)
- Fixed an issue where some items were rendered as empty in Adobe Reader documents; e.g. the links in the table of contents of the Apple iPhone IOS 4.1 User Guide.
- The "Use currently saved settings on the logon and other secure screens" button in NVDA's General Settings dialog now works if used immediately after NVDA is newly installed but before a secure screen has appeared. Previously, NVDA reported that copying was successful, but it actually had no effect. (#1194)
- It is no longer possible to have two NVDA settings dialogs open simultaneously. This fixes issues where one open dialog depends on another open dialog; e.g. changing the synthesiser while the Voice Settings dialog is open. (#603)
- On systems with UAC enabled, the "Use currently saved settings on the logon and other secure screens" button in NVDA's General Settings dialog no longer fails after the UAC prompt if the user's account name contains a space. (#918)
- In Internet Explorer and other MSHTML controls, NVDA now uses the URL as a last resort to determine the name of a link, rather than presenting empty links. (#633)
- NVDA no longer ignores the focus in AOL Instant Messenger 7 menus. (#655)
- Announce the correct label for errors in the Microsoft Word Spell Check dialog (e.g. Not in dictionary, Grammar error, punctuation). Previously they were all announced as grammar error. (#883)
- Typing in Microsoft Word while using a braille display should no longer cause garbled text to be typed, and a rare freeze when pressing a braille routing key in Word documents has been fixed. (#1212) However a limitation is that Arabic text can no longer be read in Word 2003 and below, while using a braille display. (#627)
- When pressing the delete key in an edit field, the text/cursor on a braille display should now always be updated appropriately to reflect the change. (#947)
- Changes on dynamic pages in Gecko2 documents (E.g. Firefox 4) while multiple tabs are open are now properly reflected by NVDA. Previously only changes in the first tab were reflected. (Mozilla bug 610985)
- NVDA can now properly announce the suggestions for grammar and punctuation errors in Microsoft Word spell check dialog. (#704)
- In Internet Explorer and other MSHTML controls, NVDA no longer presents destination anchors as empty links in its virtual buffer. Instead, these anchors are hidden as they should be. (#1326)
- Object navigation around and within standard groupbox windows is no longer broken and asymmetrical.
- In Firefox and other Gecko-based controls, NVDA will no longer get stuck in a subframe if it finishes loading before the outer document.
- NVDA now appropriately announces the next character when deleting a character with numpadDelete. (#286)
- On the Windows XP logon screen, the user name is once again reported when the selected user is changed.
- Fixed problems when reading text in Windows command consoles with reporting of line numbers enabled.
- The Elements List dialog for virtual buffers is now usable by sighted users. All controls are visible on screen. (#1321)
- The list of entries in the Speech Dictionary dialog is now more readable by sighted users. The list is now large enough to show all of its columns on screen. (#90)
- On ALVA BC640/BC680 braille displays, NVDA no longer disregards display keys that are still held down after another key is released.
- Adobe Reader X no longer crashes after leaving the untagged document options before the processing dialog appears. (#1218)
- NVDA now switches to the appropriate braille display driver when you revert to saved configuration. (#1346)
- The Visual Studio 2008 Project Wizard is read correctly again. (#974)
- NVDA no longer completely fails to work in applications which contain non-ASCII characters in their executable name. (#1352)
- When reading by line in AkelPad with word wrap enabled, NVDA no longer reads the first character of the following line at the end of the current line.
- In the Visual Studio 2005/2008 code editor, NVDA no longer reads the entire text after every typed character. (#975)
- Fixed the issue where some braille displays weren't cleared properly when NVDA was exited or the display was changed.
- The initial focus is no longer sometimes spoken twice when NVDA starts. (#1359)

### Changes for Developers

- SCons is now used to prepare the source tree and create binary builds, portable archives, installers, etc. See readme.txt at the root of the source distribution for details.
- The key names used by NVDA (including key maps) have been made more friendly/logical; e.g. upArrow instead of extendedUp and numpadPageUp instead of prior. See the vkCodes module for a list.
- All input from the user is now represented by an inputCore.InputGesture instance. (#601)
  - Each source of input subclasses the base InputGesture class.
  - Key presses on the system keyboard are encompassed by the keyboardHandler.KeyboardInputGesture class.
  - Presses of buttons, wheels and other controls on a braille display are encompassed by subclasses of the braille.BrailleDisplayGesture class. These subclasses are provided by each braille display driver.
- Input gestures are bound to ScriptableObjects using the ScriptableObject.bindGesture() method on an instance or an __gestures dict on the class which maps gesture identifiers to script names. See baseObject.ScriptableObject for details.
- App modules no longer have key map files. All input gesture bindings must be done in the app module itself.
- All scripts now take an InputGesture instance instead of a key press.
  - KeyboardInputGestures can be sent on to the OS using the send() method of the gesture.
- To send an arbitrary key press, you must now create a KeyboardInputGesture using KeyboardInputGesture.fromName() and then use its send() method.
- Locales may now provide an input gesture map file to add new bindings or override existing bindings for scripts anywhere in NVDA. (#810)
  - Locale gesture maps should be placed in locale\LANG\gestures.ini, where LANG is the language code.
  - See inputCore.GlobalGestureMap for details of the file format.
- The new LiveText and Terminal NVDAObject behaviors facilitate automatic reporting of new text. See those classes in NVDAObjects.behaviors for details. (#936)
  - The NVDAObjects.window.DisplayModelLiveText overlay class can be used for objects which must retrieve text written to the display.
  - See the mirc and putty app modules for usage examples.
- There is no longer an _default app module. App modules should instead subclass appModuleHandler.AppModule (the base AppModule class).
- Support for global plugins which can globally bind scripts, handle NVDAObject events and choose NVDAObject overlay classes. (#281) See globalPluginHandler.GlobalPlugin for details.
- On SynthDriver objects, the available* attributes for string settings (e.g. availableVoices and availableVariants) are now OrderedDicts keyed by ID instead of lists.
- synthDriverHandler.VoiceInfo now takes an optional language argument which specifies the language of the voice.
- SynthDriver objects now provide a language attribute which specifies the language of the current voice.
  - The base implementation uses the language specified on the VoiceInfo objects in availableVoices. This is suitable for most synthesisers which support one language per voice.
- Braille display drivers have been enhanced to allow buttons, wheels and other controls to be bound to NVDA scripts:
  - Drivers can provide a global input gesture map to add bindings for scripts anywhere in NVDA.
  - They can also provide their own scripts to perform display specific functions.
  - See braille.BrailleDisplayDriver for details and existing braille display drivers for examples.
- The 'selfVoicing' property on AppModule classes has now been renamed to 'sleepMode'.
- The app module events event_appLoseFocus and event_appGainFocus have now been renamed to event_appModule_loseFocus and event_appModule_gainFocus, respectivly, in order to make the naming convention consistent with app modules and tree interceptors.
- All braille display drivers should now use braille.BrailleDisplayDriver instead of braille.BrailleDisplayDriverWithCursor.
  - The cursor is now managed outside of the driver.
  - Existing drivers need only change their class statement accordingly and rename their _display method to display.

## 2010.2

Notable features of this release include greatly simplified object navigation; virtual buffers for Adobe Flash content; access to many previously inaccessible controls by retrieving text written to the screen; flat review of screen text; support for IBM Lotus Symphony documents; reporting of table row and column headers in Mozilla Firefox; and significantly improved user documentation.

### New Features

- Navigating through objects with the review cursor has been greatly simplified. The review cursor now excludes objects which aren't useful to the user; i.e. objects only used for layout purposes and unavailable objects.
- In applications using the Java Access Bridge (including OpenOffice.org), formatting can now be reported in text controls. (#358, #463)
- When moving the mouse over cells in Microsoft Excel, NVDA will appropriately announce them.
- In applications using the Java Access Bridge, the text of a dialog is now reported when the dialog appears. (#554)
- A virtualBuffer can now be used to navigate adobe Flash content. Object navigation and interacting with the controls directly (by turning on focus mode) is still supported. (#453)
- Editable text controls in the Eclipse IDE, including the code editor, are now accessible. You must be using Eclipse 3.6 or later. (#256, #641)
- NVDA can now retrieve most text written to the screen. (#40, #643)
  - This allows for reading of controls which do not expose information in more direct/reliable ways.
  - Controls made accessible by this feature include: some menu items which display icons (e.g. the Open With menu on files in Windows XP) (#151), editable text fields in Windows Live applications (#200), the errors list in Outlook Express (#582), the editable text control in TextPad (#605), lists in Eudora, many controls in Australian E-tax and the formula bar in Microsoft Excel.
- Support for the code editor in Microsoft Visual Studio 2005 and 2008. At least Visual Studio Standard is required; this does not work in the Express editions. (#457)
- Support for IBM Lotus Symphony documents.
- Early experimental support for Google Chrome. Please note that Chrome's screen reader support is far from complete and additional work may also be required in NVDA. You will need a recent development build of Chrome to try this.
- The state of toggle keys (caps lock, num lock and scroll lock) is now displayed in braille when they are pressed. (#620)
- Help balloons are now displayed in braille when they appear. (#652)
- Added a driver for the MDV Lilli braille display. (#241)
- When selecting an entire row or column in Microsoft Excel with the shortcut keys shift+space and control+space, the new selection is now reported. (#759)
- Table row and column headers can now be reported. This is configurable from the Document Formatting preferences dialog.
  - Currently, this is supported in documents in Mozilla applications such as Firefox (version 3.6.11 and later) and Thunderbird (version 3.1.5 and later). (#361)
- Introduced commands for flat review: (#58)
  - NVDA+numpad7 switches to flat review, placing the review cursor at the position of the current object, allowing you to review the screen (or a document if within one) with the text review commands.
  - NVDA+numpad1 moves the review cursor into the object represented by the text at the position of the review cursor, allowing you to navigate by object from that point.
- Current NVDA user settings can be copied to be used on secure Windows screens such as the logon and UAC screens by pressing a button in the General Settings dialog. (#730)
- Support for Mozilla Firefox 4.
- Support for Microsoft Internet Explorer 9.

### Changes

- The sayAll by Navigator object (NVDA+numpadAdd), navigator object next in flow (NVDA+shift+numpad6) and navigator object previous in flow (NVDA+shift+numpad4) commands have been removed for the time being, due to bugginess and to free up the keys for other possible features.
- In the NVDA Synthesizer dialog, only the display name of the synthesizer is now listed. Previously, it was prefixed by the driver's name, which is only relevant internally.
- When in embedded applications or virtual buffers inside another virtualBuffer (e.g. Flash), you can now press nvda+control+space to move out of the embedded application or virtual buffer to the containing document. Previously nvda+space was used for this. Now nvda+space is specifically only for toggling brows/focus modes on virtualBuffers.
- If the speech viewer (enabled under the tools menu) is given the focus (e.g. it was clicked in) new text will not appear in the control until focus is moved away. This allows for selecting the text with greater ease (e.g. for copying).
- The Log Viewer and Python Console are maximised when activated.
- When focusing on a worksheet in Microsoft Excel and there is more than one cell selected, the selection range is announced, rather than just the active cell. (#763)
- Saving configuration and changing of particular sensitive options is now disabled when running on the logon, UAC and other secure Windows screens.
- Updated eSpeak speech synthesiser to 1.44.03.
- If NVDA is already running, activating the NVDA shortcut on the desktop (which includes pressing control+alt+n) will restart NVDA.
- Removed the report text under the mouse checkbox from the Mouse settings dialog and replaced it with an Enable mouse tracking checkbox, which better matches the toggle mouse tracking script (NVDA+m).
- Updates to the laptop keyboard layout so that it includes all commands available in the desktop layout and works correctly on non-English keyboards. (#798, #800)
- Significant improvements and updates to the user documentation, including documentation of the laptop keyboard commands and synchronisation of the Keyboard Commands Quick Reference with the User Guide. (#455)
- Updated liblouis braille translator to 2.1.1. Notably, this fixes some issues related to Chinese braille as well as characters which are undefined in the translation table. (#484, #499)

### Bug Fixes

- In µTorrent, the focused item in the torrents list no longer reports repeatedly or steals focus when a menu is open.
- In µTorrent, the names of the files in the Torrent Contents list are now reported.
- In Mozilla applications, focus is now correctly detected when it lands on an empty table or tree.
- In Mozilla applications, "not checked" is now correctly reported for checkable controls such as checkable table cells. (#571)
- In Mozilla applications, the text of correctly implemented ARIA dialogs is no longer ignored and will now be reported when the dialog appears. (#630)
- in Internet Explorer and other MSHTML controls, the ARIA level attribute is now honoured correctly.
- In Internet Explorer and other MSHTML controls, the ARIA role is now chosen over other type information to give a much more correct and predictable ARIA experience.
- Stopped a rare crash in Internet Explorer when navigating through frames or iFrames.
- In Microsoft Word documents, right-to-left lines (such as Arabic text) can be read again. (#627)
- Greatly reduced lag when large amounts of text are displayed in a Windows command console on 64-bit systems. (#622)
- If Skype is already started when NVDA starts, it is no longer necessary to restart Skype to enable accessibility. This may also be true for other applications which check the system screen reader flag.
- In Microsoft Office applications, NVDA no longer crashes when speak foreground (NVDA+b) is pressed or when navigating some objects on toolbars. (#616)
- Fixed incorrect speaking of numbers containing a 0 after a separator; e.g. 1,023. (#593)
- Adobe Acrobat Pro and Reader 9 no longer crash when closing a file or performing certain other tasks. (#613)
- The selection is now announced when control+a is pressed to select all text in some editable text controls such as in Microsoft Word. (#761)
- In Scintilla controls (e.g. Notepad++), text is no longer incorrectly selected when NVDA moves the caret such as during say all. (#746)
- It is again possible to review the contents of cells in Microsoft Excel with the review cursor.
- NVDA can again read by line in certain problematic textArea fields in Internet Explorer 8. (#467)
- Windows Live Messenger 2009 no longer exits immediately after it is started while NVDA is running. (#677)
- In web browsers, It is no longer necessary to press tab to interact with an embedded object (such as Flash content) after pressing enter on the embedded object or returning from another application. (#775)
- In Scintilla controls (e.g. Notepad++), the beginning of long lines is no longer truncated when it scrolls off the screen. Also, these long lines will be correctly displayed in braille when they are selected.
- In Loudtalks, it is now possible to access the contact list.
- The URL of the document and "MSAAHTML Registered Handler" are no longer sometimes spuriously reported in Internet Explorer and other MSHTML controls. (#811)
- In tree views in the Eclipse IDE, the previously focused item is no longer incorrectly announced when focus moves to a new item.
- NVDA now functions correctly on a system where the current working directory has been removed from the DLL search path (by setting the CWDIllegalInDllSearch registry entry to 0xFFFFFFFF). Note that this is not relevant to most users. (#907)
- When the table navigation commands are used outside of a table in Microsoft Word, "edge of table" is no longer spoken after "not in table". (#921)
- When the table navigation commands cannot move due to being at the edge of a table in Microsoft Word, "edge of table" is now spoken in the configured NVDA language rather than always in English. (#921)
- In Outlook Express, Windows Mail and Windows Live Mail, the state of the checkboxes in message rules lists is now reported. (#576)
- The description of message rules can now be read in Windows Live Mail 2010.

## 2010.1

This release focuses primarily on bug fixes and improvements to the user experience, including some significant stability fixes.

### New Features

- NVDA no longer fails to start on a system with no audio output devices. Obviously, a braille display or the Silence synthesiser in conjunction with the Speech Viewer will need to be used for output in this case. (#425)
- A report landmarks checkbox has been added to the Document Formatting settings dialog which allows you to configure whether NVDA should announce landmarks in web documents. For compatibility with the previous release, the option is on by default.
- If speak command keys is enabled, NVDA will now announce the names of multimedia keys (e.g. play, stop, home page, etc.) on many keyboards when they are pressed. (#472)
- NVDA now announces the word being deleted when pressing control+backspace in controls that support it. (#491)
- Arrow keys can now be used in the Web formator window to navigate and read the text. (#452)
- The entry list in the Microsoft Office Outlook address book is now supported.
- NVDA better supports embedded editable (design mode) documents in Internet Explorer. (#402)
- a new script (nvda+shift+numpadMinus) allows you to move the system focus to the current navigator object.
- New scripts to lock and unlock the left and right mouse buttons. Useful for performing drag and drop operations. shift+numpadDivide to lock/unlock the left, shift+numpadMultiply to lock/unlock the right.
- New braille translation tables: German 8 dot computer braille, German grade 2, Finnish 8 dot computer braille, Chinese (Hong Kong, Cantonese), Chinese (Taiwan, Manderin). (#344, #369, #415, #450)
- It is now possible to disable the creation of the desktop shortcut (and thus the shortcut key) when installing NVDA. (#518)
- NVDA can now use IAccessible2 when present in 64 bit applications. (#479)
- Improved support for live regions in Mozilla applications. (#246)
- The NVDA Controller Client API is now provided to allow applications to control NVDA; e.g. to speak text, silence speech, display a message in Braille, etc.
- Information and error messages are now read in the logon screen in Windows Vista and Windows 7. (#506)
- In Adobe Reader, PDF interactive forms developed with Adobe LiveCycle are now supported. (#475)
- In Miranda IM, NVDA now automatically reads incoming messages in chat windows if reporting of dynamic content changes is enabled. Also, commands have been added to report the three most recent messages (NVDA+control+number). (#546)
- Input text fields are now supported in Adobe Flash content. (#461)

### Changes

- The extremely verbose keyboard help message in the Windows 7 Start menu is no longer reported.
- The Display synth has now been replaced with a new Speech Viewer. To activate it, choose Speech Viewer from the Tools menu. The speech viewer can be used independently of what ever speech synthesizer you are using. (#44)
- Messages on the braille display will automatically be dismissed if the user presses a key that results in a change such as the focus moving. Previously the message would always stay around for its configured time.
- Setting whether braille should be tethered to the focus or the review cursor (NVDA+control+t) can now be also set from the braille settings dialog, and is also now saved in the user's configuration.
- Updated eSpeak speech synthesiser to 1.43.
- Updated liblouis braille translator to 1.8.0.
- In virtual buffers, the reporting of elements when moving by character or word has been greatly improved. Previously, a lot of irrelevant information was reported and the reporting was very different to that when moving by line. (#490)
- The Control key now simply stops speech like other keys, rather than pausing speech. To pause/resume speech, use the shift key.
- Table row and column counts are no longer announced when reporting focus changes, as this announcement is rather verbose and usually not useful.

### Bug Fixes

- NVDA no longer fails to start if UI Automation support appears to be available but fails to initialise for some reason. (#483)
- The entire contents of a table row is no longer sometimes reported when moving focus inside a cell in Mozilla applications. (#482)
- NVDA no longer lags for a long time when expanding tree view items that contain a very large amount of sub-items.
- When listing SAPI 5 voices, NVDA now tries to detect buggy voices and excludes them from the Voice Settings dialog and synthesiser settings ring. Previously, when there was just one problematic voice, NVDA's SAPI 5 driver would sometimes fail to start.
- Virtual buffers now honour the report object shortcut keys setting found in the Object Presentation dialog. (#486)
- In virtual buffers, row/column coordinates are no longer incorrectly read for row and column headers when reporting of tables is disabled.
- In virtual buffers, row/column coordinates are now correctly read when you leave a table and then re-enter the same table cell without visiting another cell first; e.g. pressing upArrow then downArrow on the first cell of a table. (#378)
- Blank lines in Microsoft Word documents and Microsoft HTML edit controls are now shown appropriately on braille displays. Previously NVDA was displaying the current sentence on the display, not the current line for these situations. (#420)
- Multiple security fixes when running NVDA at Windows logon and on other secure desktops. (#515)
- The cursor position (caret) is now correctly updated when performing a Say All that goes off the bottom of the screen, in standard Windows edit fields and Microsoft Word documents. (#418)
- In virtual buffers, text is no longer incorrectly included for images inside links and clickables that are marked as being irrelevant to screen readers. (#423)
- Fixes to the laptop keyboard layout. (#517)
- When Braille is tethered to review when you focus on a Dos console window, the review cursor can now properly navigate the text in the console.
- While working with TeamTalk3 or TeamTalk4 Classic, the VU meter progress bar in the main window is no longer announced as it updates. Also, special characters can be read properly in the incoming chat window.
- Items are no longer spoken twice in the Windows 7 Start Menu. (#474)
- Activating same-page links in Firefox 3.6 appropriately moves the cursor in the virtualBuffer to the correct place on the page.
- Fixed the issue where some text was not rendered in Adobe Reader in certain PDF documents.
- NVDA no longer incorrectly speaks certain numbers separated by a dash; e.g. 500-1000. (#547)
- In Windows XP, NVDA no longer causes Internet Explorer to freeze when toggling checkboxes in Windows Update. (#477)
- When using the in-built eSpeak synthesiser, simultaneous speech and beeps no longer intermittently cause freezes on some systems. This was most noticeable, for example, when copying large amounts of data in Windows Explorer.
- NVDA no longer announces that a Firefox document has become busy (e.g. due to an update or refresh) when that document is in the background. This also caused the status bar of the foreground application to be spuriously announced.
- When switching Windows keyboard layouts (with control+shift or alt+shift), the full name of the layout is reported in both speech and braille. Previously it was only reported in speech, and alternative layouts (e.g. Dvorak) were not reported at all.
- If reporting of tables is disabled, table information is no longer announced when the focus changes.
- Certain standard tree view controls in 64 bit applications (e.g. the Contents tree view in Microsoft HTML Help) are now accessible. (#473)
- Fixed some problems with logging of messages containing non-ASCII characters. This could cause spurious errors in some cases on non-English systems. (#581)
- The information in the About NVDA dialog now appears in the user's configured language instead of always appearing in English. (#586)
- Problems are no longer encountered when using the synthesiser settings ring after the voice is changed to one which has less settings than the previous voice.
- In Skype 4.2, contact names are no longer spoken twice in the contact list.
- Fixed some potentially major memory leaks in the GUI and in virtual buffers. (#590, #591)
- Work around a nasty bug in some SAPI 4 synthesisers which was causing frequent errors and crashes in NVDA. (#597)

## 2009.1

Major highlights of this release include support for 64 bit editions of Windows; greatly improved support for Microsoft Internet Explorer and Adobe Reader documents; support for Windows 7; reading of the Windows logon, control+alt+delete and User Account Control (UAC) screens; and the ability to interact with Adobe Flash and Sun Java content on web pages. There have also been several significant stability fixes and improvements to the general user experience.

### New Features

- Official support for 64 bit editions of Windows! (#309)
- Added a synthesizer driver for the Newfon synthesizer. Note that this requires a special version of Newfon. (#206)
- In virtual buffers, focus mode and browse mode can now be reported using sounds instead of speech. This is enabled by default. It can be configured from the Virtual buffers dialog. (#244)
- NVDA no longer cancels speech when volume control keys are pressed on the keyboard, allowing the user to change the volume and listen to actual results immediately. (#287)
- Completely rewritten support for Microsoft Internet Explorer and Adobe Reader documents. This support has been unified with the core support used for Mozilla Gecko, so features such as fast page rendering, extensive quick navigation, links list, text selection, auto focus mode and braille support are now available with these documents.
- Improved support for the date selection control found in the Windows Vista Date / Time properties dialog.
- improved support for the Modern XP/Vista start menu (specifically the all programs, and places menus). Appropriate level information is now announced.
- The amount of text that is announced when moving the mouse is now configurable from the Mouse settings dialog. A choice of paragraph, line, word or character can be made.
- announce spelling errors under the cursor in Microsoft Word.
- support for the Microsoft Word 2007 spell checker. Partial support may be available for prior Microsoft Word versions.
- Better support for Windows Live Mail. Plain text messages can now be read and both the plain text and HTML message composers are useable.
- In Windows Vista, if the user moves to the secure desktop (either because a UAC control dialog appeared, or because control+alt+delete was pressed), NVDA will announce the fact that the user is now on the secure desktop.
- NVDA can announce text under the mouse within dos console windows.
- Support for UI Automation via the UI Automation client API available in Windows 7, as well as fixes to improve the experience of NVDA in Windows 7.
- NVDA can be configured to start automatically after you log on to Windows. The option is in the General Settings dialog.
- NVDA can read secure Windows screens such as the Windows logon, control+alt+delete and User Account Control (UAC) screens in Windows XP and above. Reading of the Windows logon screen can be configured from the General Settings dialog. (#97)
- Added a driver for the Optelec ALVA BC6 series braille displays.
- When browsing web documents, you can now press n and shift+n to skip forward and backward past blocks of links, respectively.
- When browsing web documents, ARIA landmarks are now reported, and you can move forward and backward through them using d and shift+d, respectively. (#192)
- The Links List dialog available when browsing web documents has now become an Elements List dialog which can list links, headings and landmarks. Headings and landmarks are presented hierarchically. (#363)
- The new Elements List dialog contains a "Filter by" field which allows you to filter the list to contain only those items including the text that was typed. (#173)
- Portable versions of NVDA now look in the 'userConfig' directory inside the NVDA directory, for the user's configuration. Like for the installer version, this keeps the user's configuration separate from NVDA itself.
- Custom app modules, braille display drivers and synth drivers can now be stored in the user's configuration directory. (#337)
- Virtual buffers are now rendered in the background, allowing the user to interact with the system to some extent during the rendering process. The user will be notified that the document is being rendered if it takes longer than a second.
- If NVDA detects that it has frozen for some reason, it will automatically pass all keystrokes through so that the user has a better chance of recovering the system.
- Support for ARIA drag and drop in Mozilla Gecko. (#239)
- The document title and current line or selection is now spoken when you move focus inside a virtual buffer. This makes the behaviour when moving focus into virtual buffers consistent with that for normal document objects. (#210)
- In virtual buffers, you can now interact with embedded objects (such as Adobe Flash and Sun Java content) by pressing enter on the object. If it is accessible, you can then tab around it like any other application. To return focus to the document, press NVDA+space. (#431)
- In virtual buffers, o and shift+o move to the next and previous embedded object, respectively.
- NVDA can now fully access applications running as administrator in Windows Vista and later. You must install an official release of NVDA for this to work. This does not work for portable versions and snapshots. (#397)

### Changes

- NVDA no longer announces "NVDA started" when it starts.
- The startup and exit sounds are now played using NVDA's configured audio output device instead of the Windows default audio output device. (#164)
- Progress bar reporting has been improved. Most notably you can now configure NVDA to announce via both speech and beeps at the same time.
- Some generic roles, such as pane, application and frame, are no longer reported on focus unless the control is unnamed.
- The review copy command (NVDA+f10) copies the text from the start marker up to and including the current review position, rather than excluding the current position. This allows the last character of a line to be copied, which was not previously possible. (#430)
- the navigatorObject_where script (ctrl+NVDA+numpad5) has been removed. This key combination did not work on some keyboards, nore was the script found to be that useful.
- the navigatorObject_currentDimentions script has been remapped to NVDA+numpadDelete. The old key combination did not work on some keyboards. This script also now reports the width and height of the object instead of the right/bottom coordinates.
- Improved performance (especially on netbooks) when many beeps occur in quick succession; e.g. fast mouse movement with audio coordinates enabled. (#396)
- The NVDA error sound is no longer played in release candidates and final releases. Note that errors are still logged.

### Bug Fixes

- When NVDA is run from an 8.3 dos path, but it is installed in the related long path (e.g. progra~1 verses program files) NVDA will correctly identify that it is an installed copy and properly load the user's settings.
- speaking the title of the current foreground window with nvda+t now works correctly when in menus.
- braille no longer shows useless information in its focus context such as unlabeled panes.
- stop announcing some useless information when the focus changes such as root panes, layered panes and scroll panes in Java or Lotus applications.
- Make the keyword search field in Windows Help (CHM) viewer much more usable. Due to buggyness in that control, the current keyword could not be read as it would be continually changing.
- report correct page numbers in Microsoft Word if the page numbering has been specifically offset in the document.
- Better support for edit fields found in Microsoft Word dialogs (e.g. the Font dialog). It is now possible to navigate these controls with the arrow keys.
- better support for Dos consoles. specifically: NVDA can now read the content of particular consoles it always used to think were blank. Pressing control+break no longer terminates NVDA.
- On Windows Vista and above, the NVDA installer now starts NVDA with normal user privileges when requested to run NVDA on the finish screen.
- Backspace is now handled correctly when speaking typed words. (#306)
- Don't incorrectly report "Start menu" for certain context menus in Windows Explorer/the Windows shell. (#257)
- NVDA now correctly handles ARIA labels in Mozilla Gecko when there is no other useful content. (#156)
- NVDA no longer incorrectly enables focus mode automatically for editable text fields which update their value when the focus changes; e.g. http://tigerdirect.com/. (#220)
- NVDA will now attempt to recover from some situations which would previously cause it to freeze completely. It may take up to 10 seconds for NVDA to detect and recover from such a freeze.
- When the NVDA language is set to "User default", use the user's Windows display language setting instead of the Windows locale setting. (#353)
- NVDA now recognises the existence of controls in AIM 7.
- The pass key through command no longer gets stuck if a key is held down. Previously, NVDA stopped accepting commands if this occurred and had to be restarted. (#413)
- The taskbar is no longer ignored when it receives focus, which often occurs when exiting an application. Previously, NVDA behaved as if the focus had not changed at all.
- When reading text fields in applications which use the Java Access Bridge (including OpenOffice.org), NVDA now functions correctly when reporting of line numbers is enabled.
- The review copy command (NVDA+f10) gracefully handles the case where it is used on a position before the start marker. Previously, this could cause problems such as crashes in Notepad++.
- A certain control character (0x1) no longer causes strange eSpeak behaviour (such as changes in volume and pitch) when it is encountered in text. (#437)
- The report text selection command (NVDA+shift+upArrow) now gracefully reports that there is no selection in objects which do not support text selection.
- Fixed the issue where pressing the enter key on certain Miranda-IM buttons or links was causing NVDA to freeze. (#440)
- The current line or selection is now properly respected when spelling or copying the current navigator object.
- Worked around a Windows bug which was causing garbage to be spoken after the name of link controls in Windows Explorer and Internet Explorer dialogs. (#451)
- Fixed a problem with the report date and time command (NVDA+f12). Previously, date reporting was truncated on some systems. (#471)
- Fixed the issue where the system screen reader flag was sometimes inappropriately cleared after interacting with secure Windows screens. This could cause problems in applications which check the screen reader flag, including Skype, Adobe Reader and Jart. (#462)
- In an Internet Explorer 6 combo box, the active item is now reported when it is changed. (#342)

## 0.6p3

### New Features

- As Microsoft Excel's formula bar is inaccessible to NVDA, provide an NVDA specific dialog box for editing when the user presses f2 on a cell.
- Support for formatting in IAccessible2 text controls, including Mozilla applications.
- Spelling errors can now be reported where possible. This is configurable from the Document Formatting preferences dialog.
- NVDA can be configured to beep for either all or only visible progress bars. Alternatively, it can be configured to speak progress bar values every 10%.
- Links can now be identified in richedit controls.
- The mouse can now be moved to the character under the review cursor in most editable text controls. Previously, the mouse could only be moved to the center of the control.
- In virtual buffers, the review cursor now reviews the text of the buffer, rather than just the internal text of the navigator object (which is often not useful to the user). This means that you can navigate the virtual buffer hierarchically using object navigation and the review cursor will move to that point in the buffer.
- Handle some additional states on Java controls.
- If the title command (NVDA+t) is pressed twice, it spells the title. If pressed thrice, it is copied to the clipboard.
- Keyboard help now reads the names of modifier keys when pressed alone.
- Key names announced by keyboard help are now translatable.
- Added support for the recognized text field in SiRecognizer. (#198)
- Support for braille displays!
- Added a command (NVDA+c) to report the text on the Windows clipboard. (#193)
- In virtualBuffers, if NVDA automatically switches to focus mode, you can use the escape key to switch back to browse mode. NVDA+space can still also be used.
- In virtual buffers, when the focus changes or the caret is moved, NVDA can automatically switch to focus mode or browse mode as appropriate for the control under the caret. This is configured from the Virtual Buffers dialog. (#157)
- Rewritten SAPI4 synthesizer driver which replaces the sapi4serotek and sapi4activeVoice drivers and should fix the problems encountered with these drivers.
- The NVDA application now includes a manifest, which means that it no longer runs in compatibility mode in Windows Vista.
- The configuration file and speech dictionaries are now saved in the user's application data directory if NVDA was installed using the installer. This is necessary for Windows Vista and also allows multiple users to have individual NVDA configurations.
- Added support for position information for IAccessible2 controls.
- Added the ability to copy text to the clipboard using the review cursor. NVDA+f9 sets the start marker to the current position of the review cursor. NVDA+f10 retrieves the text between the start marker and the current position of the review cursor and copies it to the clipboard. (#240)
- Added support for some edit controls in pinacle tv software.
- When announcing selected text for long selections (512 characters or more), NVDA now speaks the number of selected characters, rather than speaking the entire selection. (#249)

### Changes

- If the audio output device is set to use the Windows default device (Microsoft Sound Mapper), NVDA will now switch to the new default device for eSpeak and tones when the default device changes. For example, NVDA will switch to a USB audio device if it automatically becomes the default device when it is connected.
- Improve performance of eSpeak with some Windows Vista audio drivers.
- reporting of links, headings, tables, lists and block quotes can now be configured from the Document Formatting settings dialog. Previously to configure these settings for virtual buffers, the virtual buffer settings dialog would have been used. Now all documents share this configuration.
- Rate is now the default setting in the speech synthesizer settings ring.
- Improve the loading and unloading of appModules.
- The title command (NVDA+t) now only reports the title instead of the entire object. If the foreground object has no name, the application's process name is used.
- Instead of virtual buffer pass through on and off, NVDA now reports focus mode (pass through on) and browse mode (pass through off).
- Voices are now stored in the configuration file by ID instead of by index. This makes voice settings more reliable across systems and configuration changes. The voice setting will not be preserved in old configurations and an error may be logged the first time a synthesizer is used. (#19)
- The level of a tree view item is now announced first if it has changed from the previously focused item for all tree views. Previously, this was only occurring for native Windows (SysTreeView32) tree views.

### Bug Fixes

- The last chunk of audio is no longer cut off when using NVDA with eSpeak on a remote desktop server.
- Fix problems with saving speech dictionaries for certain voices.
- Eliminate the lag when moving by units other than character (word, line, etc.) towards the bottom of large plain text documents in Mozilla Gecko virtual buffers. (#155)
- If speak typed words is enabled, announce the word when enter is pressed.
- Fix some character set issues in richedit documents.
- The NVDA log viewer now uses richedit instead of just edit to display the log. This improves reading by word with NVDA.
- Fix some issues related to embedded objects in richedit controls.
- NVDA now reads page numbers in Microsoft Word. (#120)
- Fix the issue where tabbing to a checked checkbox in a Mozilla Gecko virtual buffer and pressing space would not announce that the checkbox was being unchecked.
- Correctly report partially checked checkboxes in Mozilla applications.
- If the text selection expands or shrinks in both directions, read the selection as one chunk instead of two.
- When reading with the mouse, text in Mozilla Gecko edit fields should now be read.
- Say all should no longer cause certain SAPI5 synthesizers to crash.
- Fixed an issue which meant that text selection changes were not being read in Windows standard edit controls before the first focus change after NVDA was started.
- Fix mouse tracking in Java objects. (#185)
- NVDA no longer reports Java tree view items with no children as being collapsed.
- Announce the object with focus when a Java window comes to the foreground. Previously, only the top-level Java object was announced.
- The eSpeak synthesizer driver no longer stops speaking completely after a single error.
- Fix the issue whereby updated voice parameters (rate, pitch, etc.) were not saved when the voice was changed from the synthesizer settings ring.
- Improved the speaking of typed characters and words.
- Some new text that was previously not spoken in text console applications (such as some text adventure games) is now spoken.
- NVDA now ignores focus changes in background windows. Previously, a background focus change could be treated as if the real focus changed.
- Improved the detection of the focus when leaving context menus. Previously, NVDA often didn't react at all when leaving a context menu.
- NVDA now announces when the context menu is activated in the Start menu.
- The classic Start menu is now announced as Start menu instead of Application menu.
- Improved the reading of alerts such as those encountered in Mozilla Firefox. The text should no longer be read multiple times and other extraneous information will no longer be read. (#248)
- The text of focusable, read-only edit fields will no longer be included when retrieving the text of dialogs. This fixes, for example, the automatic reading of the entire license agreement in installers.
- NVDA no longer announces the unselection of text when leaving some edit controls (example: Internet Explorer address bar, Thunderbird 3 email address fields).
- When opening plain text emails in Outlook Express and Windows Mail, focus is correctly placed in the message ready for the user to read it. Previously the user had to press tab or click on the message in order to use cursor keys to read it.
- Fixed several major issues with the "Speak command keys" functionality.
- NVDA can now read text past 65535 characters in standard edit controls (e.g. a large file in Notepad).
- Improved line reading in MSHTML edit fields (Outlook Express editable messages and Internet Explorer text input fields).
- NVDA no longer sometimes freezes completely when editing text in OpenOffice. (#148, #180)

## 0.6p2

- Improved the default ESpeak voice in NVDA
- Added a laptop keyboard layout. Keyboard layouts can be configured from NVDA's Keyboard settings dialog. (#60)
- Support for grouping items in SysListView32 controls, mainly found in Windows Vista. (#27)
- Report the checked state of treeview items in SysTreeview32 controls.
- Added shortcut keys for many of NVDA's configuration dialogs
- Support for IAccessible2 enabled applications such as Mozilla Firefox when running NVDA from portable media, with out having to register any special Dll files
- Fix a crash with the virtualBuffers Links List in Gecko applications. (#48)
- NVDA should no longer crash Mozilla Gecko applications such as Firefox and Thunderbird if NVDA is running with higher privilages than the Mozilla Gecko application. E.g. NVDA is running as Administrator.
- Speech dictionaries (previously User dictionaries) now can be either case sensitive or insensitive, and the patterns can optionally be regular expressions. (#39)
- Whether or not NVDA uses a 'screen layout' mode for virtual buffer documents can now be configured from a settings dialog
- No longer report anchor tags with no href in Gecko documents as links. (#47)
- The NVDA find command now remembers what you last searched for, across all applications. (#53)
- Fix issues where the checked state would not be announced for some checkboxes and radio buttons in virtualBuffers
- VirtualBuffer pass-through mode is now specific to each document, rather than NVDA globally. (#33)
- Fixed some sluggishness with focus changes and incorrect speech interuption which sometimes occured when using NVDA on a system that had been on standby or was rather slow
- Improve support for combo boxes in Mozilla Firefox. Specifically when arrowing around them text isn't repeated, and when jumping out of them, ancestor controls are not announced unnecessarily. Also virtualBuffer commands now work when focused on one when you are in a virtualBuffer.
- Improve accuracy of finding the statusbar in many applications. (#8)
- Added the NVDA interactive Python console tool, to enable developers to look at and manipulate NVDA's internals as it is running
- sayAll, reportSelection and reportCurrentLine scripts now work properly when in virtualBuffer pass-through mode. (#52)
- The increase rate and decrease rate scripts have been removed. Users should use the synth settings ring scripts (control+nvda+arrows) or the Voice settings dialog
- Improve the range and scale of the progress bar beeps
- Added more quick keys to the new virtualBuffers: l for list, i for list item, e for edit field, b for button, x for checkbox, r for radio button, g for graphic, q for blockquote, c for combo box, 1 through 6 for respective heading levels, s for separator, m for frame. (#67, #102, #108)
- Canceling the loading of a new document in Mozilla Firefox now allows the user to keep using the old document's virtualBuffer if the old document hadn't yet really been destroyed. (#63)
- Navigating by words in virtualBuffers is now more accurate as words do not accidentally contain text from more than one field. (#70)
- Improved accuracy of focus tracking and focus updating when navigating in Mozilla Gecko virtualBuffers.
- Added a findPrevious script (shift+NVDA+f3) for use in new virtualBuffers
- Improved sluggishness in Mozilla Gecko dialogs (in Firefox and Thunderbird). (#66)
- Add the ability to view the current log file for NVDA. it can be found in the NVDA menu -> Tools
- Scripts such as say time and date now take the current language in to account; punctuation and ordering of words now reflects the language
- The language combo box in NVDA's General settings dialog now shows full language names for ease of use
- When reviewing text in the current navigator object, the text is always up to date if it changes dynamically. E.g. reviewing the text of a list item in Task Manager. (#15)
- When moving with the mouse, the current paragraph of text under the mouse is now announced, rather than either all the text in that particular object or just the current word. Also audio coordinates, and announcement of object roles is optional, they are turned off by default
- Support for reading text with the mouse in Microsoft Word
- Fixed bug where leaving the menu bar in applications such as Wordpad would cause text selection to not be announced anymore
- In Winamp, the title of the track is no longer announced again and again when switching tracks, or pausing/resuming/stopping playback.
- In Winamp, Added ability to announce state of the shuffle and repeat controls as they are switched. Works in the main window and in the playlist editor
- Improve the ability to activate particular fields in Mozilla Gecko virtualBuffers. May include clickable graphics, links containing paragraphs, and other weird structures
- Fixed an initial lag when opening NVDA dialogs on some systems. (#65)
- Add specific support for the Total Commander application
- Fix bug in the sapi4serotek driver where the pitch could get locked at a particular value, i.e. stays high after reading a capital letter. (#89)
- Announce clickable text and other fields as clickable in Mozilla Gecko VirtualBuffers. e.g. a field which has an onclick HTML attribute. (#91)
- When moving around Mozilla Gecko virtualBuffers, scroll the current field in to view -- useful so sighted peers have an idea of where the user is up to in the document. (#57)
- Add basic support for ARIA live region show events in IAccessible2 enabled applications. Useful in the Chatzilla IRC application, new messages will now be read automatically
- Some slight improvements to help use ARIA enabled web applications, e.g. Google Docs
- Stop adding extra blank lines to text when copying it from a virtualBuffer
- Stop the space key from activating a link in the Links List. Now it can be used like other letters in order to start typing the name of a particular link you wish to go to
- The moveMouseToNavigator script (NVDA+numpadSlash) now moves the mouse to the centre of the navigator object, rather than the top left
- Added scripts to click the left and right mouse buttons (numpadSlash and numpadStar respectively)
- Improve access to the Windows System Tray. Focus hopefully should no longer seem to keep jumping back to one particular item. Reminder: to get to the System Tray use the Windows command WindowsKey+b. (#10)
- Improve performance and stop announcing extra text when holding down a cursor key in an edit field and it hits the end
- Stop the ability for NVDA to make the user wait while particular messages are spoken. Fixes some crashes/freezes with particular speech synthesizers. (#117)
- Added support for the Audiologic Tts3 speech synthesizer, contribution by Gianluca Casalino. (#105)
- Possibly improve performance when navigating around documents in Microsoft Word
- Improved accuracy when reading text of alerts in Mozilla Gecko applications
- Stop possible crashes when trying to save configuration on non-English versions of Windows. (#114)
- Add an NVDA welcome dialog. This dialog is designed to provide essential information for new users and allows CapsLock to be configured as an NVDA modifier key. This dialog will be displayed when NVDA is started by default until it is disabled.
- Fix basic support for Adobe Reader so it is possible to read documents in versions 8 and 9
- Fix some errors that may have occured when holding down keys before NVDA is properly initialized
- If the user has configured NVDA to save configuration on exit, make sure the configuration is properly saved when shutting down or logging out of Windows.
- Added an NVDA logo sound to the beginning of the installer, contributed by Victer Tsaran
- NVDA, both running in the installer and otherwise, should properly clean up its system tray icon when it exits
- Labels for standard controls in NVDA's dialogs (such as Ok and cancel buttons) should now show in the language NVDA is set to, rather than just staying in English.
- NVDA's icon should now be used for the NVDA shortcuts in the start menu and on the Desktop, rather than a default application icon.
- Read cells in MS Excel when moving with tab and shift+tab. (#146)
- Fix some double speaking in particular lists in Skype.
- Improved caret tracking in IAccessible2 and Java applications; e.g. in Open Office and Lotus Symphony, NVDA properly waits for the caret to move in documents rather than accidentally reading the wrong word or line at the end of some paragraphs. (#119)
- Support for AkelEdit controls found in Akelpad 4.0
- NVDA no longer locks up in Lotus Synphony when moving from the document to the menu bar.
- NVDA no longer freezes in the Windows XP Add/Remove programs applet when launching an uninstaller. (#30)
- NVDA no longer freezes when opening Spybot Search and Destroy

## 0.6p1

### Access to web content with new in-process virtualBuffers (so far for Mozilla Gecko applications including Firefox3 and Thunderbird3)

- Load times have been improved almost by a factor of thirty (you no longer have to wait at all for most web pages to load in to the buffer)
- Added a links list (NVDA+f7)
- Improved the find dialog (control+nvda+f) so that it performs a case-insencitive search, plus fixed a few focus issues with that dialog box.
- It is now possible to select and copy text in the new virtualBuffers
- By default the new virtualBuffers represent the document in a screen layout (links and controls are not on separate lines unless they really are visually). You can toggle this feature with NVDA+v.
- It is possible to move by paragraph with control+upArrow and control+downArrow.
- Improved support for dynamic content
- Improved over all accuracy of reading lines and fields when arrowing up and down.

### Internationalization

- It is now possible to type accented characters that rely on a "dead character", while NVDA is running.
- NVDA now announces when the keyboard layout is changed (when pressing alt+shift).
- The announce date and time feature now takes the system's current regional and language options in to account.
- added czech translation (by Tomas Valusek with help from Jaromir Vit)
- added vietnamese translation by Dang Hoai Phuc
- Added Africaans (af_ZA) translation, by Willem van der Walt.
- Added russian translation by Dmitry Kaslin
- Added polish translation by DOROTA CZAJKA and friends.
- Added Japanese translation by Katsutoshi Tsuji.
- added Thai translation by Amorn Kiattikhunrat
- added croatian translation by Mario Percinic and Hrvoje Katic
- Added galician translation by Juan C. buno
- added ukrainian translation by Aleksey Sadovoy

### Speech

- NVDA now comes packaged with eSpeak 1.33 which contains many improvements, among those are improved languages, named variants, ability to speak faster.
- The voice settings dialog now allows you to change the variant of a synthesizer if it supports one. Variant is usually a slight variation on the current voice. (eSpeak supports variants).
- Added the ability to change the inflection of a voice in the voice settings dialog if the current synthesizer supports this. (eSpeak supports inflection).
- Added the ability to turn off speaking of object position information(e.g. 1 of 4). This option can be found in the Object presentation settings dialog.
- NVDA can now beep when speaking a capital letter. This can be turned on and off with a check box in the voice settings dialog. Also added a raise pitch for capitals check box to configure whether NVDA should actually do its normal pitch raise for capitals. So now you can have either raise pitch, say cap, or beep, for capitals.
- Added the ability to pause speech in NVDA (like found in Voice Over for the Mac). When NVDA is speaking something, you can press the control or shift keys to silence speech just like normal, but if you then tap the shift key again (as long as you havn't pressed any other keys) speech will continue from exactly where it left off.
- Added a virtual synthDriver which outputs text to a window instead of speaking via a speech synthesiser. This should be more pleasant for sighted developers who are not used to speech synthesis but want to know what is spoken by NVDA. There are probably still some bugs, so feedback is most definitely welcome.
- NVDA no longer by default speaks punctuation, you can enable speaking of punctuation with NVDA+p.
- eSpeak by default now speaks quite a bit slower, which should make it easier for people who are using eSpeak for the first time, when installing or starting to use NVDA.
- Added user dictionaries to NVDA. These allow you to make NVDA speak certain text differently. There are three dictionaries: default, voice, and temporary. Entries you add to the default dictionary will happen all the time in NVDA. Voice dictionaries are specific to the current synthesizer and voice you currently have set. And temporary dictionary is for those times you quickly want to set a rule while you are doing a particular task, but you don't want it to be perminant (it will disappear if you close NVDA). For now the rules are regular expressions, not just normal text.
- Synthesizers can now use any audio output device on your system, by setting the output device combo box in the Synthesizer dialog before selecting the synthesizer you want.

### Performance

- NVDA no longer takes up a huge amount of system memory , when editing messages in mshtml edit controls
- Improved performance when reviewing text inside many controls that do not actually have a real cursor. e.g. MSN Messenger history window, treeview items, listview items etc.
- Improved performance in rich edit documents.
- NVDA should no longer slowly creep up in system memory size for no reason
- Fixed bugs when trying to focus on a dos console window more than three or so times. NVDA did have a tendency to completely crash.

### Key commands

- NVDA+shift+numpad6 and NVDA+shift+numpad4 allow you to navigate to the next or previous object in flow respectively. This means that you can navigate in an application by only using these two keys with out having to worry about going up by parent, or down to first child as you move around the object hyerarchy. For instance in a web browser such as firefox, you could navigate the document by object, by just using these two keys. If next in flow or previous in flow takes you up and out of an object, or down in to an object, ordered beeps indicate the direction.
- You can now configure voice settings with out opening the voice settings dialog, by using the Synth Settings Ring. The synth settings ring is a group of voice settings you can toggle through by pressing control+NVDA+right and control+NVDA+left. To change a setting use control+NVDA+up and control+NVDA+down.
- Added a command to report the current selection in edit fields (NVDA+shift+upArrow).
- Quite a few NVDA commands that speak text (such as report current line etc) now can spell the text if pressed twice quickly.
- the capslock, numpad insert and extended insert can all be used as the NVDA modifier key. Also if one of these keys is used, pressing the key twice with out pressing any other keys will send the key through to the operating system, just like you'd pressed the key with out NVDA running. To make one of these keys be the NVDA modifier key, check its checkbox in the Keyboard settings dialog (used to be called the keyboard echo dialog).

### Application support

- Improved support for Firefox3 and Thunderbird3 documents. Load times have been improved by almost a factor of thirty, a screen layout is used by default (press nvda+v to toggle between this and no screen layout), a links list (nvda+f7 has been added), the find dialog (control+nvda+f) is now case-insensitive, much better support for dynamic content, selecting and copying text is now possible.
- In the MSN Messenger and Windows Live Messenger history windows, it is now possible to select and copy text.
- Improved support for the audacity application
- Added support for a few edit/text controls in Skype
- Improved support for Miranda instant messenger application
- Fixed some focus issues when opening html and plain text messages in Outlook Express.
- Outlook express newsgroup message fields are now labeled correctly
- NVDA can now read the addresses in the Outlook Express message fields (to/from/cc etc)
- NVDA should be now more accurate at announcing the next message in out look express when deleting a message from the message list.

### APIs and toolkits

- Improved object navigation for MSAA objects. If a window has a system menu, title bar, or scroll bars, you can now navigate to them.
- Added support for the IAccessible2 accessibility API. A part from the ability to announce more control types, this also allows NVDA to access the cursor in applications such as Firefox 3 and Thunderbird 3, allowing you to navigate, select or edit text.
- Added support for Scintilla edit controls (such controls can be found in Notepad++ or Tortoise SVN).
- Added support for Java applications (via the Java Access Bridge). This can provide basic support for Open Office (if Java is enabled), and any other stand-alone Java application. Note that java applets with in a web browser may not work yet.

### Mouse

- Improved support for reading what is under the mouse pointer as it moves. It is now much faster, and it also now has the ability in some controls such as standard edit fields, Java and IAccessible2 controls, to read the current word, not just the current object. This may be of some used to vision impared people who just want to read a specific bit of text with the mouse.
- Added a new config option, found in the mouse settings dialog. Play audio when mouse moves, when checked, plays a 40 ms beep each time the mouse moves, with its pitch (between 220 and 1760 hz) representing the y axis, and left/right volume, representing the x axis. This enables a blind person to get a rough idea of where the mouse is on the screen as its being moved. This feature also depends on reportObjectUnderMouse also being turned on. So this means that if you quickly need to disable both beeps and announcing of objects, then just press NVDA+m. The beeps are also louder or softer depending on how bright the screen is at that point.

### Object presentation and interaction

- Improved support for most common treeview controls. NVDA now tells you how many items are in the branch when you expand it. It also announces the level when moving in and out of branches. And, it announces the current item number and number of items, according to the current branch, not the entire treeview.
- Improved what is announced when focus changes as you move around applications or the operating system. Now instead of just hearing the control you land on, you hear information about any controls this control is positioned inside of. For instance if you tab and land on a button inside a groupbox, the groupbox will also get announced.
- NVDA now tries to speak the message inside many dialog boxes as they appear. This is accurate most of the time, though there are still many dialogs that arn't as good as they could be.
- Added a report object descriptions checkbox to the object presentation settings dialog. Power users may wish to sometimes uncheck this to stop NVDA announcing a lot of extra descriptions on particular controls, such as in Java applications.
- NVDA automatically announces selected text in edit controls when focus moves to them. If there isn't any selected text, then it just announces the current line like usual.
- NVDA is a lot more careful now when it plays beeps to indicate progress bar changes in applications. It no longer goes crazy in Eclipse applications such as Lotus Notes/Symphony, and Accessibility Probe.

### User Interface

- Removed the NVDA interface window, and replaced it with a simple NVDA popup menu.
- NVDA's user interface settings dialog is now called General Settings. It also contains an extra setting: a combo box to set the log level, for what messages should go to NVDA's log file. Note that NVDA's log file is now called nvda.log not debug.log.
- Removed the report object group names checkBox from the object presentation settings dialog, reporting of group names now is handled differently.

## 0.5

- NVDA now has a built-in synthesizer called eSpeak, developed by Jonathan Duddington.It is very responsive and lite-weight, and has support for many different languages. Sapi synthesizers can still be used, but eSpeak will be used by default.
  - eSpeak does not depend on any special software to be installed, so it can be used with NVDA on any computer, on a USB thumb drive, or anywhere.
  - For more info on eSpeak, or to find other versions, go to http://espeak.sourceforge.net/.
- Fix bug where the wrong character was being announced when pressing delete in Internet Explorer / Outlook Express editable panes.
- Added support for more edit fields in Skype.
- VirtualBuffers only get loaded when focus is on the window that needs to be loaded. This fixes some problems when the preview pane is turned on in Outlook Express.
- Added commandline arguments to NVDA:
  - -m, --minimal: do not play startup/exit sounds and do not show the interface on startup if set to do so.
  - -q, --quit: quit any other already running instance of NVDA and then exit
  - -s, --stderr-file fileName: specify where NVDA should place uncaught errors and exceptions
  - -d, --debug-file fileName: specify where NVDA should place debug messages
  - -c, --config-file: specify an alternative configuration file
  - -h, -help: show a help message listing commandline arguments
- Fixed bug where punctuation symbols would not be translated to the appropriate language, when using a language other than english, and when speak typed characters was turned on.
- Added Slovak language files thanks to Peter Vagner
- Added a Virtual Buffer settings dialog and a Document Formatting settings dialog, from Peter Vagner.
- Added French translation thanks to Michel Such
- Added a script to toggle beeping of progress bars on and off (insert+u). Contributed by Peter Vagner.
- Made more messages in NVDA be translatable for other languages. This includes script descriptions when in keyboard help.
- Added a find dialog to the virtualBuffers (internet Explorer and Firefox). Pressing control+f when on a page brings up a dialog in which you can type some text to find. Pressing enter will then search for this text and place the virtualBuffer cursor on this line. Pressing f3 will also search for the next occurance of the text.
- When speak typed characters is turned on, more characters should be now spoken. Technically, now ascii characters from 32 to 255 can now be spoken.
- Renamed some control types for better readability. Editable text is now edit, outline is now tree view and push button is now button.
- When arrowing around list items in a list, or tree view items in a tree view, the control type (list item, tree view item) is no longer spoken, to speed up navigation.
- Has Popup (to indicate that a menu has a submenu) is now spoken as submenu.
- Where some language use control and alt (or altGR) to enter a special character, NVDA now will speak these characters when speak typed characters is on.
- Fixed some problems with reviewing static text controls.
- Added Translation for Traditional Chinese, thanks to Coscell Kao.
- Re-structured an important part of the NVDA code, which should now fix many issues with NVDA's user interface (including settings dialogs).
- Added Sapi4 support to NVDA. Currently there are two sapi4 drivers, one based on code contributed by Serotek Corporation, and one using the ActiveVoice.ActiveVoice com Interface. Both these drivers have issues, see which one works best for you.
- Now when trying to run a new copy of NVDA while an older copy is still running will cause the new copy to just exit. This fixes a major problem where running multiple copies of NVDA makes your system very unusable.
- Renamed the title of the NVDA user interface from NVDA Interface to NVDA.
- Fixed a bug in Outlook Express where pressing backspace at the start of an editable message would cause an error.
- Added patch from Rui Batista that adds a script to report the current battery status on laptops (insert+shift+b).
- Added a synth driver called Silence. This is a synth driver that does not speak anything, allowing NVDA to stay completely silent at all times. Eventually this could be used along with Braille support, when we have it.
- Added capitalPitchChange setting for synthesizers thanks to J.J. Meddaugh
- Added patch from J.J. Meddaugh that makes the toggle report objects under mouse script more like the other toggle scripts (saying on/off rather than changing the whole statement).
- Added spanish translation (es) contributed by Juan C. buo.
- Added Hungarian language file from Tamas Gczy.
- Added Portuguese language file from Rui Batista.
- Changing the voice in the voice settings dialog now sets the rate, pitch and volume sliders to the new values according to the synthesizer, rather than forcing the synthesizer to be set to the old values. This fixes issues where a synth like eloquence or viavoice seems to speek at a much faster rate than all other synths.
- Fixed a bug where either speech would stop, or NVDA would entirely crash, when in a Dos console window.
- If support for a particular language exists, NVDA now automatically can show its interface and speak its messages in the language Windows is set to. A particular language can still be chosen manualy from the user interface settings dialog as well.
- Added script 'toggleReportDynamicContentChanges' (insert+5). This toggles whether new text, or other dynamic changes should be automatically announced. So far this only works in Dos Console Windows.
- Added script 'toggleCaretMovesReviewCursor' (insert+6). This toggles whether the review cursor should be automatically repositioned when the system caret moves. This is useful in Dos console windows when trying to read information as the screen is updating.
- Added script 'toggleFocusMovesNavigatorObject' (insert+7). This toggles whether the navigator object is repositioned on the object with focus as it changes.
- Added some documentation translated in to various languages. So far there is French, Spannish and Finish.
- Removed some developer documentation from the binary distribution of NVDA, it is only now in the source version.
- Fixed a possible bug in Windows Live Messanger and MSN Messenger where arrowing up and down the contact list would cause errors.
- New messages are now automatically spoken when in a conversation using Windows Live Messenger. (only works for English versions so far)
- The history window in a Windows Live Messenger conversation can now be read by using the arrow keys. (Only works for English versions so far)
- Added script 'passNextKeyThrough' (insert+f2). Press this key, and then the next key pressed will be passed straight through to Windows. This is useful if you have to press a certain key in an application but NVDA uses that key for something else.
- NVDA no longer freezes up for more than a minute when opening very large documents in MS Word.
- Fixed a bug where moving out of a table in MS Word, and then moving back in, caused the current row/column numbers not to be spoken if moving back in to exactly the same cell.
- When starting NVDA with a synthesizer that doesn't exist, or is not working, the sapi5 synth will try and be loaded in stead, or if sapi5 isn't working, then speech will be set to silence.
- Increasing and decreasing rate scripts can no longer take the rate above 100 or below 0.
- If there is an error with a language when choosing it in the User Interface Settings dialog, a message box will alert the user to the fact.
- NVDA now asks if it should save configuration and restart if the user has just changed the language in the User Interface Settings Dialog. NVDA must be restarted for the language change to fully take effect.
- If a synthesizer can not be loaded, when choosing it from the synthesizer dialog, a message box alerts the user to the fact.
- When loading a synthesizer for the first time, NVDA lets the synthesizer choose the most suitable voice, rate and pitch parameters, rather than forcing it to defaults it thinks are ok. This fixes a problem where Eloquence and Viavoice sapi4 synths start speaking way too fast for the first time.