Html 禁用backspace和enter导航是否会对可访问性造成问题?
我们的应用程序在IE中出现了一个问题,用户无意中在非文本控件上点击退格导致了导航和问题。我的任务是抑制退格。但我们的应用程序必须符合508标准。可访问性很重要。抑制退格不会影响我们的可访问性吗?如果是这样,Chrome和Edge就不会有这个问题。它们不使用相同的键盘快捷键吗?Alt+左箭头在大多数较新的浏览器中是后退按钮的标准 由于这在IE中同样有效,用户仍然可以使用键盘返回 从技术上讲,这可能被视为失败,因为您正在干扰预期的行为,但我个人认为,如果您决定在当前选择的输入为空时禁用backspace键,则整个表单消失带来的不便超过了这一点 确保仅当当前通过(或Html 禁用backspace和enter导航是否会对可访问性造成问题?,html,browser,accessibility,internet-explorer-11,section508,Html,Browser,Accessibility,Internet Explorer 11,Section508,我们的应用程序在IE中出现了一个问题,用户无意中在非文本控件上点击退格导致了导航和问题。我的任务是抑制退格。但我们的应用程序必须符合508标准。可访问性很重要。抑制退格不会影响我们的可访问性吗?如果是这样,Chrome和Edge就不会有这个问题。它们不使用相同的键盘快捷键吗?Alt+左箭头在大多数较新的浏览器中是后退按钮的标准 由于这在IE中同样有效,用户仍然可以使用键盘返回 从技术上讲,这可能被视为失败,因为您正在干扰预期的行为,但我个人认为,如果您决定在当前选择的输入为空时禁用backspa
)使用类似的方式选择了
时,才会停止正常的退格行为
这样,如果没有选择输入,用户仍然可以使用backspace返回
“一网打尽”解决方案消除了禁用退格的需要
在不禁用退格按钮的情况下解决此问题的一种方法是使用window.onbeforeuload
创建一个设置为false
的标志,如果任何输入有值/进行了更改等,该标志将更改为true
然后使用window.onbeforeunload
并检查该标志的值。如果为true
则显示消息,false
并返回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;
}
我鼓励您无论如何都要实现这一点-意外关闭页面、点击物理后退按钮等同样容易。这样做可以防止所有意外导航
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月从Edge和Chrome 52中删除的 您禁用它是完全正确的,因为它旨在保护您的用户