Remove native screen reader support (#2669)
* Remove native screen reader support Use the "accesskit" feature flag to `eframe` instead. [AccessKit](https://github.com/AccessKit/accesskit) is the future. `tts` was a mess to compile on many platforms, so I no longer want the native `tts` dependency. * Update tts to 0.25 * Update changelogs * Turn on all feature flags for package.metadata.docs.rs * remove tts from deny.toml skip-tree * Update web build scripts * Update deny.toml
This commit is contained in:
parent
1353a5733f
commit
e4eaf99072
17 changed files with 64 additions and 204 deletions
125
Cargo.lock
generated
125
Cargo.lock
generated
|
@ -1255,17 +1255,6 @@ version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
|
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "displaydoc"
|
|
||||||
version = "0.2.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dlib"
|
name = "dlib"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
|
@ -1432,7 +1421,6 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"smithay-clipboard",
|
"smithay-clipboard",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tts",
|
|
||||||
"webbrowser",
|
"webbrowser",
|
||||||
"winit",
|
"winit",
|
||||||
]
|
]
|
||||||
|
@ -2291,20 +2279,6 @@ version = "1.0.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "jni"
|
|
||||||
version = "0.19.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
|
|
||||||
dependencies = [
|
|
||||||
"cesu8",
|
|
||||||
"combine",
|
|
||||||
"jni-sys",
|
|
||||||
"log",
|
|
||||||
"thiserror",
|
|
||||||
"walkdir",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jni"
|
name = "jni"
|
||||||
version = "0.20.0"
|
version = "0.20.0"
|
||||||
|
@ -2573,19 +2547,6 @@ dependencies = [
|
||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ndk"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags",
|
|
||||||
"jni-sys",
|
|
||||||
"ndk-sys 0.3.0",
|
|
||||||
"num_enum",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
@ -2594,7 +2555,7 @@ checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"jni-sys",
|
"jni-sys",
|
||||||
"ndk-sys 0.4.1+23.1.7779620",
|
"ndk-sys",
|
||||||
"num_enum",
|
"num_enum",
|
||||||
"raw-window-handle 0.5.0",
|
"raw-window-handle 0.5.0",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
@ -2606,21 +2567,6 @@ version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
|
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ndk-glue"
|
|
||||||
version = "0.6.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f"
|
|
||||||
dependencies = [
|
|
||||||
"lazy_static",
|
|
||||||
"libc",
|
|
||||||
"log",
|
|
||||||
"ndk 0.6.0",
|
|
||||||
"ndk-context",
|
|
||||||
"ndk-macro",
|
|
||||||
"ndk-sys 0.3.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk-glue"
|
name = "ndk-glue"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
@ -2629,10 +2575,10 @@ checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"ndk 0.7.0",
|
"ndk",
|
||||||
"ndk-context",
|
"ndk-context",
|
||||||
"ndk-macro",
|
"ndk-macro",
|
||||||
"ndk-sys 0.4.1+23.1.7779620",
|
"ndk-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
]
|
]
|
||||||
|
@ -2650,15 +2596,6 @@ dependencies = [
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ndk-sys"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
|
|
||||||
dependencies = [
|
|
||||||
"jni-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk-sys"
|
name = "ndk-sys"
|
||||||
version = "0.4.1+23.1.7779620"
|
version = "0.4.1+23.1.7779620"
|
||||||
|
@ -2899,6 +2836,12 @@ dependencies = [
|
||||||
"ttf-parser 0.17.1",
|
"ttf-parser 0.17.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "oxilangtag"
|
||||||
|
version = "0.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8d91edf4fbb970279443471345a4e8c491bf05bb283b3e6c88e4e606fd8c181b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pango-sys"
|
name = "pango-sys"
|
||||||
version = "0.15.10"
|
version = "0.15.10"
|
||||||
|
@ -3649,9 +3592,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "speech-dispatcher"
|
name = "speech-dispatcher"
|
||||||
version = "0.15.1"
|
version = "0.16.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c3d62720b035474bccfd208cb85b1772adfae4b3450c743853e2e7b9c67e441e"
|
checksum = "5727d53c474ba5ada07784ad7d203cf896a74854cfee0eb32376b00759eb2972"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libc",
|
"libc",
|
||||||
|
@ -3937,15 +3880,6 @@ dependencies = [
|
||||||
"bytemuck",
|
"bytemuck",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tinystr"
|
|
||||||
version = "0.7.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f8aeafdfd935e4a7fe16a91ab711fa52d54df84f9c8f7ca5837a9d1d902ef4c2"
|
|
||||||
dependencies = [
|
|
||||||
"displaydoc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tinytemplate"
|
name = "tinytemplate"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
|
@ -4063,25 +3997,26 @@ checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tts"
|
name = "tts"
|
||||||
version = "0.24.3"
|
version = "0.25.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "810084d246c730f3cadc70fb74ceb4d1abf84d8bcdb7dc81e55ac808992da2c8"
|
checksum = "b7d2f3540357cbcd1d3f16aefc6357ba2fb3960591d1468eb951c9021f854338"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa-foundation",
|
"cocoa-foundation",
|
||||||
"core-foundation",
|
"core-foundation",
|
||||||
"dyn-clonable",
|
"dyn-clonable",
|
||||||
"jni 0.19.0",
|
"jni",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"ndk-glue 0.6.2",
|
"ndk-context",
|
||||||
|
"ndk-glue",
|
||||||
"objc",
|
"objc",
|
||||||
|
"oxilangtag",
|
||||||
"speech-dispatcher",
|
"speech-dispatcher",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"unic-langid",
|
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"web-sys",
|
"web-sys",
|
||||||
"windows 0.42.0",
|
"windows 0.43.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -4119,24 +4054,6 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unic-langid"
|
|
||||||
version = "0.9.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
|
|
||||||
dependencies = [
|
|
||||||
"unic-langid-impl",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unic-langid-impl"
|
|
||||||
version = "0.9.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
|
|
||||||
dependencies = [
|
|
||||||
"tinystr",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-bidi"
|
name = "unicode-bidi"
|
||||||
version = "0.3.8"
|
version = "0.3.8"
|
||||||
|
@ -4489,7 +4406,7 @@ checksum = "769f1a8831de12cad7bd6f9693b15b1432d93a151557810f617f626af823acae"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"core-foundation",
|
"core-foundation",
|
||||||
"dirs",
|
"dirs",
|
||||||
"jni 0.20.0",
|
"jni",
|
||||||
"log",
|
"log",
|
||||||
"ndk-context",
|
"ndk-context",
|
||||||
"objc",
|
"objc",
|
||||||
|
@ -4889,8 +4806,8 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"mio",
|
"mio",
|
||||||
"ndk 0.7.0",
|
"ndk",
|
||||||
"ndk-glue 0.7.0",
|
"ndk-glue",
|
||||||
"objc",
|
"objc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
|
|
|
@ -5,7 +5,8 @@ NOTE: [`egui-winit`](../egui-winit/CHANGELOG.md), [`egui_glium`](../egui_glium/C
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
* ⚠️ BREAKING: `App::clear_color` now expects you to return a raw float array ([#2666](https://github.com/emilk/egui/pull/2666)):
|
* ⚠️ BREAKING: `App::clear_color` now expects you to return a raw float array ([#2666](https://github.com/emilk/egui/pull/2666)).
|
||||||
|
* The `screen_reader` feature has now been renamed `web_screen_reader` and only work on web. On other platforms, use the `accesskit` feature flag instead ([#2669](https://github.com/emilk/egui/pull/2669)).
|
||||||
|
|
||||||
#### Desktop/Native:
|
#### Desktop/Native:
|
||||||
* `eframe::run_native` now returns a `Result` ([#2433](https://github.com/emilk/egui/pull/2433)).
|
* `eframe::run_native` now returns a `Result` ([#2433](https://github.com/emilk/egui/pull/2433)).
|
||||||
|
|
|
@ -14,9 +14,7 @@ keywords = ["egui", "gui", "gamedev"]
|
||||||
include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
|
include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
# Avoid speech-dispatcher dependencies - see https://docs.rs/crate/eframe/0.20.0/builds/695200
|
all-features = true
|
||||||
no-default-features = true
|
|
||||||
features = ["document-features", "glow", "wgpu", "persistence", "wgpu"]
|
|
||||||
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
|
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@ -55,8 +53,10 @@ persistence = [
|
||||||
## `eframe` will call `puffin::GlobalProfiler::lock().new_frame()` for you
|
## `eframe` will call `puffin::GlobalProfiler::lock().new_frame()` for you
|
||||||
puffin = ["dep:puffin", "egui_glow?/puffin", "egui-wgpu?/puffin"]
|
puffin = ["dep:puffin", "egui_glow?/puffin", "egui-wgpu?/puffin"]
|
||||||
|
|
||||||
## Enable screen reader support (requires `ctx.options_mut(|o| o.screen_reader = true);`)
|
## Enable screen reader support (requires `ctx.options_mut(|o| o.screen_reader = true);`) on web.
|
||||||
screen_reader = ["egui-winit/screen_reader", "tts"]
|
##
|
||||||
|
## For other platforms, use the "accesskit" feature instead.
|
||||||
|
web_screen_reader = ["tts"]
|
||||||
|
|
||||||
## If set, eframe will look for the env-var `EFRAME_SCREENSHOT_TO` and write a screenshot to that location, and then quit.
|
## If set, eframe will look for the env-var `EFRAME_SCREENSHOT_TO` and write a screenshot to that location, and then quit.
|
||||||
## This is used to generate images for the examples.
|
## This is used to generate images for the examples.
|
||||||
|
@ -171,5 +171,5 @@ web-sys = { version = "0.3.58", features = [
|
||||||
|
|
||||||
# optional web:
|
# optional web:
|
||||||
egui-wgpu = { version = "0.20.0", path = "../egui-wgpu", optional = true } # if wgpu is used, use it without (!) winit
|
egui-wgpu = { version = "0.20.0", path = "../egui-wgpu", optional = true } # if wgpu is used, use it without (!) winit
|
||||||
tts = { version = "0.24", optional = true }
|
tts = { version = "0.25", optional = true, default-features = false }
|
||||||
wgpu = { version = "0.15.0", optional = true, features = ["webgl"] }
|
wgpu = { version = "0.15.0", optional = true, features = ["webgl"] }
|
||||||
|
|
|
@ -3,6 +3,7 @@ All notable changes to the `egui-winit` integration will be noted in this file.
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
* Remove the `screen_reader` feature. Use the `accesskit` feature flag instead ([#2669](https://github.com/emilk/egui/pull/2669)).
|
||||||
|
|
||||||
|
|
||||||
## 0.20.1 - 2022-12-11
|
## 0.20.1 - 2022-12-11
|
||||||
|
|
|
@ -14,8 +14,7 @@ keywords = ["winit", "egui", "gui", "gamedev"]
|
||||||
include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
|
include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
# Avoid speech-dispatcher dependencies - see https://docs.rs/crate/egui-winit/0.20.0/builds/695196
|
all-features = true
|
||||||
features = ["document-features"]
|
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -37,9 +36,6 @@ links = ["webbrowser"]
|
||||||
## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate.
|
## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate.
|
||||||
puffin = ["dep:puffin"]
|
puffin = ["dep:puffin"]
|
||||||
|
|
||||||
## Experimental support for a screen reader.
|
|
||||||
screen_reader = ["tts"]
|
|
||||||
|
|
||||||
## Allow serialization of [`WindowSettings`] using [`serde`](https://docs.rs/serde).
|
## Allow serialization of [`WindowSettings`] using [`serde`](https://docs.rs/serde).
|
||||||
serde = ["egui/serde", "dep:serde"]
|
serde = ["egui/serde", "dep:serde"]
|
||||||
|
|
||||||
|
@ -67,9 +63,6 @@ accesskit_winit = { version = "0.8.1", optional = true }
|
||||||
puffin = { version = "0.14", optional = true }
|
puffin = { version = "0.14", optional = true }
|
||||||
serde = { version = "1.0", optional = true, features = ["derive"] }
|
serde = { version = "1.0", optional = true, features = ["derive"] }
|
||||||
|
|
||||||
# feature screen_reader
|
|
||||||
tts = { version = "0.24", optional = true }
|
|
||||||
|
|
||||||
webbrowser = { version = "0.8.3", optional = true }
|
webbrowser = { version = "0.8.3", optional = true }
|
||||||
|
|
||||||
[target.'cfg(any(target_os="linux", target_os="dragonfly", target_os="freebsd", target_os="netbsd", target_os="openbsd"))'.dependencies]
|
[target.'cfg(any(target_os="linux", target_os="dragonfly", target_os="freebsd", target_os="netbsd", target_os="openbsd"))'.dependencies]
|
||||||
|
|
|
@ -19,7 +19,6 @@ use egui::accesskit;
|
||||||
pub use winit;
|
pub use winit;
|
||||||
|
|
||||||
pub mod clipboard;
|
pub mod clipboard;
|
||||||
pub mod screen_reader;
|
|
||||||
mod window_settings;
|
mod window_settings;
|
||||||
|
|
||||||
pub use window_settings::WindowSettings;
|
pub use window_settings::WindowSettings;
|
||||||
|
@ -75,7 +74,6 @@ pub struct State {
|
||||||
current_pixels_per_point: f32,
|
current_pixels_per_point: f32,
|
||||||
|
|
||||||
clipboard: clipboard::Clipboard,
|
clipboard: clipboard::Clipboard,
|
||||||
screen_reader: screen_reader::ScreenReader,
|
|
||||||
|
|
||||||
/// If `true`, mouse inputs will be treated as touches.
|
/// If `true`, mouse inputs will be treated as touches.
|
||||||
/// Useful for debugging touch support in egui.
|
/// Useful for debugging touch support in egui.
|
||||||
|
@ -115,7 +113,6 @@ impl State {
|
||||||
current_pixels_per_point: 1.0,
|
current_pixels_per_point: 1.0,
|
||||||
|
|
||||||
clipboard: clipboard::Clipboard::new(wayland_display),
|
clipboard: clipboard::Clipboard::new(wayland_display),
|
||||||
screen_reader: screen_reader::ScreenReader::default(),
|
|
||||||
|
|
||||||
simulate_touch_screen: false,
|
simulate_touch_screen: false,
|
||||||
pointer_touch_id: None,
|
pointer_touch_id: None,
|
||||||
|
@ -615,11 +612,6 @@ impl State {
|
||||||
egui_ctx: &egui::Context,
|
egui_ctx: &egui::Context,
|
||||||
platform_output: egui::PlatformOutput,
|
platform_output: egui::PlatformOutput,
|
||||||
) {
|
) {
|
||||||
if egui_ctx.options(|o| o.screen_reader) {
|
|
||||||
self.screen_reader
|
|
||||||
.speak(&platform_output.events_description());
|
|
||||||
}
|
|
||||||
|
|
||||||
let egui::PlatformOutput {
|
let egui::PlatformOutput {
|
||||||
cursor_icon,
|
cursor_icon,
|
||||||
open_url,
|
open_url,
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
pub struct ScreenReader {
|
|
||||||
#[cfg(feature = "tts")]
|
|
||||||
tts: Option<tts::Tts>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(not(feature = "tts"))]
|
|
||||||
#[allow(clippy::derivable_impls)] // False positive
|
|
||||||
impl Default for ScreenReader {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "tts")]
|
|
||||||
impl Default for ScreenReader {
|
|
||||||
fn default() -> Self {
|
|
||||||
let tts = match tts::Tts::default() {
|
|
||||||
Ok(screen_reader) => {
|
|
||||||
tracing::debug!("Initialized screen reader.");
|
|
||||||
Some(screen_reader)
|
|
||||||
}
|
|
||||||
Err(err) => {
|
|
||||||
tracing::warn!("Failed to load screen reader: {}", err);
|
|
||||||
None
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Self { tts }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ScreenReader {
|
|
||||||
#[cfg(not(feature = "tts"))]
|
|
||||||
#[allow(clippy::unused_self)]
|
|
||||||
pub fn speak(&mut self, _text: &str) {}
|
|
||||||
|
|
||||||
#[cfg(feature = "tts")]
|
|
||||||
pub fn speak(&mut self, text: &str) {
|
|
||||||
if text.is_empty() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if let Some(tts) = &mut self.tts {
|
|
||||||
tracing::debug!("Speaking: {:?}", text);
|
|
||||||
let interrupt = true;
|
|
||||||
if let Err(err) = tts.speak(text, interrupt) {
|
|
||||||
tracing::warn!("Failed to read: {}", err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -103,9 +103,15 @@ pub struct Options {
|
||||||
/// Controls the tessellator.
|
/// Controls the tessellator.
|
||||||
pub tessellation_options: epaint::TessellationOptions,
|
pub tessellation_options: epaint::TessellationOptions,
|
||||||
|
|
||||||
/// This does not at all change the behavior of egui,
|
/// This is a signal to any backend that we want the [`crate::PlatformOutput::events`] read out loud.
|
||||||
/// but is a signal to any backend that we want the [`crate::PlatformOutput::events`] read out loud.
|
///
|
||||||
|
/// The only change to egui is that labels can be focused by pressing tab.
|
||||||
|
///
|
||||||
/// Screen readers is an experimental feature of egui, and not supported on all platforms.
|
/// Screen readers is an experimental feature of egui, and not supported on all platforms.
|
||||||
|
///
|
||||||
|
/// `eframe` supports it only on web, using the `web_screen_reader` feature flag,
|
||||||
|
/// but you should consider using [AccessKit](https://github.com/AccessKit/accesskit) instead,
|
||||||
|
/// which `eframe` supports.
|
||||||
pub screen_reader: bool,
|
pub screen_reader: bool,
|
||||||
|
|
||||||
/// If true, the most common glyphs (ASCII) are pre-rendered to the texture atlas.
|
/// If true, the most common glyphs (ASCII) are pre-rendered to the texture atlas.
|
||||||
|
|
|
@ -20,7 +20,7 @@ default = ["glow", "persistence"]
|
||||||
|
|
||||||
http = ["ehttp", "image", "poll-promise", "egui_extras/image"]
|
http = ["ehttp", "image", "poll-promise", "egui_extras/image"]
|
||||||
persistence = ["eframe/persistence", "egui/persistence", "serde"]
|
persistence = ["eframe/persistence", "egui/persistence", "serde"]
|
||||||
screen_reader = ["eframe/screen_reader"] # experimental
|
web_screen_reader = ["eframe/web_screen_reader"] # experimental
|
||||||
serde = ["dep:serde", "egui_demo_lib/serde", "egui/serde"]
|
serde = ["dep:serde", "egui_demo_lib/serde", "egui/serde"]
|
||||||
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]
|
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,8 @@ impl BackendPanel {
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
#[cfg(feature = "web_screen-reader")]
|
||||||
{
|
{
|
||||||
let mut screen_reader = ui.ctx().options(|o| o.screen_reader);
|
let mut screen_reader = ui.ctx().options(|o| o.screen_reader);
|
||||||
ui.checkbox(&mut screen_reader, "🔈 Screen reader").on_hover_text("Experimental feature: checking this will turn on the screen reader on supported platforms");
|
ui.checkbox(&mut screen_reader, "🔈 Screen reader").on_hover_text("Experimental feature: checking this will turn on the screen reader on supported platforms");
|
||||||
|
|
|
@ -3,6 +3,7 @@ All notable changes to the `egui_glium` integration will be noted in this file.
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
* Remove the `screen_reader` feature ([#2669](https://github.com/emilk/egui/pull/2669)).
|
||||||
|
|
||||||
|
|
||||||
## 0.20.1 - 2022-12-11
|
## 0.20.1 - 2022-12-11
|
||||||
|
|
|
@ -20,8 +20,7 @@ include = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
# Avoid speech-dispatcher dependencies - see https://docs.rs/crate/egui_glium/0.20.0/builds/695197
|
all-features = true
|
||||||
features = ["document-features"]
|
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -35,9 +34,6 @@ clipboard = ["egui-winit/clipboard"]
|
||||||
## Enable opening links in a browser when an egui hyperlink is clicked.
|
## Enable opening links in a browser when an egui hyperlink is clicked.
|
||||||
links = ["egui-winit/links"]
|
links = ["egui-winit/links"]
|
||||||
|
|
||||||
## Experimental support for a screen reader.
|
|
||||||
screen_reader = ["egui-winit/screen_reader"]
|
|
||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
egui = { version = "0.20.0", path = "../egui", default-features = false, features = [
|
egui = { version = "0.20.0", path = "../egui", default-features = false, features = [
|
||||||
|
|
|
@ -3,6 +3,7 @@ All notable changes to the `egui_glow` integration will be noted in this file.
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
* Remove the `screen_reader` feature ([#2669](https://github.com/emilk/egui/pull/2669)).
|
||||||
|
|
||||||
|
|
||||||
## 0.20.1 - 2022-12-11
|
## 0.20.1 - 2022-12-11
|
||||||
|
|
|
@ -20,8 +20,7 @@ include = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
# Avoid speech-dispatcher dependencies - see https://docs.rs/crate/egui_glow/0.20.0/builds/695194
|
all-features = true
|
||||||
features = ["document-features"]
|
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -37,9 +36,6 @@ clipboard = ["egui-winit?/clipboard"]
|
||||||
## enable opening links in a browser when an egui hyperlink is clicked.
|
## enable opening links in a browser when an egui hyperlink is clicked.
|
||||||
links = ["egui-winit?/links"]
|
links = ["egui-winit?/links"]
|
||||||
|
|
||||||
## Experimental support for a screen reader.
|
|
||||||
screen_reader = ["egui-winit?/screen_reader"]
|
|
||||||
|
|
||||||
## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate.
|
## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate.
|
||||||
puffin = ["dep:puffin", "egui-winit?/puffin"]
|
puffin = ["dep:puffin", "egui-winit?/puffin"]
|
||||||
|
|
||||||
|
|
29
deny.toml
29
deny.toml
|
@ -29,21 +29,24 @@ deny = [
|
||||||
]
|
]
|
||||||
|
|
||||||
skip = [
|
skip = [
|
||||||
{ name = "ahash" }, # old version via dark-light
|
{ name = "ahash" }, # old version via dark-light
|
||||||
{ name = "arrayvec" }, # old version via tiny-skiaz
|
{ name = "arrayvec" }, # old version via tiny-skiaz
|
||||||
{ name = "hashbrown" }, # old version via dark-light
|
{ name = "hashbrown" }, # old version via dark-light
|
||||||
{ name = "nix" }, # old version via winit
|
{ name = "nix" }, # old version via winit
|
||||||
{ name = "time" }, # old version pulled in by unmaintianed crate 'chrono'
|
{ name = "time" }, # old version pulled in by unmaintianed crate 'chrono'
|
||||||
{ name = "tiny-skia" }, # winit uses a different version from egui_extras (TODO(emilk): update egui_extras!)
|
{ name = "tiny-skia" }, # winit uses a different version from egui_extras (TODO(emilk): update egui_extras!)
|
||||||
{ name = "ttf-parser" }, # different versions pulled in by ab_glyph and usvg
|
{ name = "ttf-parser" }, # different versions pulled in by ab_glyph and usvg
|
||||||
{ name = "wayland-sys" }, # old version via winit
|
{ name = "wayland-sys" }, # old version via winit
|
||||||
{ name = "windows-sys" }, # old version via glutin
|
{ name = "windows_x86_64_msvc" }, # old version via glutin
|
||||||
|
{ name = "windows-sys" }, # old version via glutin
|
||||||
|
{ name = "windows" }, # old version via accesskit
|
||||||
]
|
]
|
||||||
skip-tree = [
|
skip-tree = [
|
||||||
{ name = "criterion" }, # dev-dependency
|
{ name = "criterion" }, # dev-dependency
|
||||||
{ name = "rfd" }, # example dependency
|
{ name = "darling" }, # old version via tts
|
||||||
{ name = "three-d" }, # example dependency
|
{ name = "foreign-types" }, # old version from wgpu
|
||||||
{ name = "tts" }, # we are migrating away from tts to accesskit
|
{ name = "rfd" }, # example dependency
|
||||||
|
{ name = "three-d" }, # example dependency
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ cd "$script_path/.."
|
||||||
|
|
||||||
CRATE_NAME="egui_demo_app"
|
CRATE_NAME="egui_demo_app"
|
||||||
# NOTE: persistence use up about 400kB (10%) of the WASM!
|
# NOTE: persistence use up about 400kB (10%) of the WASM!
|
||||||
FEATURES="glow,http,persistence,screen_reader"
|
FEATURES="glow,http,persistence,web_screen_reader"
|
||||||
|
|
||||||
OPEN=false
|
OPEN=false
|
||||||
OPTIMIZE=false
|
OPTIMIZE=false
|
||||||
|
|
|
@ -12,7 +12,7 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CRATE_NAME="egui_demo_app"
|
CRATE_NAME="egui_demo_app"
|
||||||
FEATURES="glow,http,persistence,screen_reader"
|
FEATURES="glow,http,persistence,web_screen_reader"
|
||||||
|
|
||||||
# This is required to enable the web_sys clipboard API which eframe web uses
|
# This is required to enable the web_sys clipboard API which eframe web uses
|
||||||
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
|
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
|
||||||
|
|
Loading…
Reference in a new issue