I'm using this example code from the FLTK book on Windows 10 22H2 (AMD64) build 19045.5371 with NVDA 2024.4.2.
#![windows_subsystem = "windows"]
use fltk::{prelude::*, *};
use fltk_accesskit::{AccessibilityContext, AccessibleApp};
fn main() {
let a = app::App::default().with_scheme(app::Scheme::Oxy);
let mut w = window::Window::default()
.with_size(400, 300)
.with_label("Hello fltk-accesskit");
let col = group::Flex::default()
.with_size(200, 100)
.center_of_parent()
.column();
let inp = input::Input::default().with_id("inp").with_label("Enter name:");
let mut btn = button::Button::default().with_label("Greet");
let out = output::Output::default().with_id("out");
col.end();
w.end();
w.make_resizable(true);
w.show();
btn.set_callback(btn_callback);
let ac = AccessibilityContext::new(
w,
vec![Box::new(inp), Box::new(btn), Box::new(out)],
);
a.run_with_accessibility(ac).unwrap();
}
fn btn_callback(_btn: &mut button::Button) {
let inp: input::Input = app::widget_from_id("inp").unwrap();
let mut out: output::Output = app::widget_from_id("out").unwrap();
let name = inp.value();
if name.is_empty() {
return;
}
out.set_value(&format!("Hello {}", name));
}
The window can be navigated normally with tab and shift tab. However, when the focus is on the text input, each time a character is typed or deleted the entire text of the input is read by the screen reader. This is extremely distracting and not the way text edit fields provide accessibility.
I'm using this example code from the FLTK book on Windows 10 22H2 (AMD64) build 19045.5371 with NVDA 2024.4.2.
The window can be navigated normally with tab and shift tab. However, when the focus is on the text input, each time a character is typed or deleted the entire text of the input is read by the screen reader. This is extremely distracting and not the way text edit fields provide accessibility.