diff --git a/packages/tui/src/focus.rs b/packages/tui/src/focus.rs index c3fffd119..18e2fbd3f 100644 --- a/packages/tui/src/focus.rs +++ b/packages/tui/src/focus.rs @@ -71,7 +71,11 @@ impl NodeDepState for Focus { fn reduce(&mut self, node: NodeView<'_>, _sibling: &Self::DepState, _: &Self::Ctx) -> bool { let new = Focus { level: if let Some(a) = node.attributes().find(|a| a.name == "tabindex") { - if let Ok(index) = a.value.parse::() { + if let Some(index) = a + .value + .as_int32() + .or(a.value.as_text().and_then(|v| v.parse::().ok())) + { match index.cmp(&0) { Ordering::Less => FocusLevel::Unfocusable, Ordering::Equal => FocusLevel::Focusable, diff --git a/packages/tui/src/node.rs b/packages/tui/src/node.rs index 80d5ef094..58b80a80f 100644 --- a/packages/tui/src/node.rs +++ b/packages/tui/src/node.rs @@ -67,7 +67,7 @@ impl NodeDepState for PreventDefault { let new = match node .attributes() .find(|a| a.name == "dioxus-prevent-default") - .map(|a| a.value) + .and_then(|a| a.value.as_text()) { Some("onfocus") => PreventDefault::Focus, Some("onkeypress") => PreventDefault::KeyPress,