禁用退格键和输入导航是否会影响可访问性?
Would disabling the backspace and enter navigation be a problem for accessibility?
我们的应用程序在 IE 中存在问题,用户无意中按下非文本控件上的退格键导致导航和问题。我的任务是抑制退格键。但我们是一款需要符合 508 标准的应用程序。可访问性很重要。抑制退格不会损害我们的可访问性吗?如果是这样,Chrome 和 Edge 就没有这个问题。他们不使用相同的键盘快捷键吗?
Alt + 左箭头 是大多数较新浏览器的标准后退按钮。
由于这在 IE 中也有效,因此用户仍然可以使用键盘返回导航。
从技术上讲,这可以被视为失败,因为您干扰了预期的行为,但我个人认为让整个表单消失的不便胜过,所以如果您决定禁用 backspace 键,如果 当前选择的 输入为空,则可以。
确保这只会停止正常的 backspace 行为,如果当前选择了 <input>
(或 <textarea>
),使用类似 document.activeElement
.
这样,如果用户没有选择输入,他们仍然可以使用 退格键 返回。
一种“包罗万象”的解决方案,无需禁用 backspace
在不禁用 backspace 按钮的情况下解决此问题的一种方法是使用 window.onbeforeunload
;
创建一个设置为 false
的标志,如果任何输入有值/进行更改等,则更改为 true
然后使用 window.onbeforeunload
并检查该标志的值。如果是 true
则显示一条消息,false
和 return null
所以不会显示警告。
下面的示例应该一直运行到 IE9,并在允许导航之前发出警告。
无论如何我都鼓励你实现这个 - 不小心关闭页面、误按物理后退按钮等也很容易,所以这样做可以防止所有意外导航。
var changed = false; // change it to true if an input has a value / has changed.
window.onbeforeunload = function() {
return changed ? "Are you sure you want to navigate away? Unsaved changes will be lost." : null;
}
Edge 和 Chrome 自愿禁用退格键以返回历史记录,因为存在意外数据丢失的风险。
这已于 2018 年 10 月和 Chrome 52 中从 Edge 中删除。
您禁用它是完全正确的,因为它旨在保护您的用户。
我们的应用程序在 IE 中存在问题,用户无意中按下非文本控件上的退格键导致导航和问题。我的任务是抑制退格键。但我们是一款需要符合 508 标准的应用程序。可访问性很重要。抑制退格不会损害我们的可访问性吗?如果是这样,Chrome 和 Edge 就没有这个问题。他们不使用相同的键盘快捷键吗?
Alt + 左箭头 是大多数较新浏览器的标准后退按钮。
由于这在 IE 中也有效,因此用户仍然可以使用键盘返回导航。
从技术上讲,这可以被视为失败,因为您干扰了预期的行为,但我个人认为让整个表单消失的不便胜过,所以如果您决定禁用 backspace 键,如果 当前选择的 输入为空,则可以。
确保这只会停止正常的 backspace 行为,如果当前选择了 <input>
(或 <textarea>
),使用类似 document.activeElement
.
这样,如果用户没有选择输入,他们仍然可以使用 退格键 返回。
一种“包罗万象”的解决方案,无需禁用 backspace
在不禁用 backspace 按钮的情况下解决此问题的一种方法是使用 window.onbeforeunload
;
创建一个设置为 false
的标志,如果任何输入有值/进行更改等,则更改为 true
然后使用 window.onbeforeunload
并检查该标志的值。如果是 true
则显示一条消息,false
和 return null
所以不会显示警告。
下面的示例应该一直运行到 IE9,并在允许导航之前发出警告。
无论如何我都鼓励你实现这个 - 不小心关闭页面、误按物理后退按钮等也很容易,所以这样做可以防止所有意外导航。
var changed = false; // change it to true if an input has a value / has changed.
window.onbeforeunload = function() {
return changed ? "Are you sure you want to navigate away? Unsaved changes will be lost." : null;
}
Edge 和 Chrome 自愿禁用退格键以返回历史记录,因为存在意外数据丢失的风险。
这已于 2018 年 10 月和 Chrome 52 中从 Edge 中删除。
您禁用它是完全正确的,因为它旨在保护您的用户。