Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 禁用backspace和enter导航是否会对可访问性造成问题?_Html_Browser_Accessibility_Internet Explorer 11_Section508 - Fatal编程技术网

Html 禁用backspace和enter导航是否会对可访问性造成问题?

Html 禁用backspace和enter导航是否会对可访问性造成问题?,html,browser,accessibility,internet-explorer-11,section508,Html,Browser,Accessibility,Internet Explorer 11,Section508,我们的应用程序在IE中出现了一个问题,用户无意中在非文本控件上点击退格导致了导航和问题。我的任务是抑制退格。但我们的应用程序必须符合508标准。可访问性很重要。抑制退格不会影响我们的可访问性吗?如果是这样,Chrome和Edge就不会有这个问题。它们不使用相同的键盘快捷键吗?Alt+左箭头在大多数较新的浏览器中是后退按钮的标准 由于这在IE中同样有效,用户仍然可以使用键盘返回 从技术上讲,这可能被视为失败,因为您正在干扰预期的行为,但我个人认为,如果您决定在当前选择的输入为空时禁用backspa

我们的应用程序在IE中出现了一个问题,用户无意中在非文本控件上点击退格导致了导航和问题。我的任务是抑制退格。但我们的应用程序必须符合508标准。可访问性很重要。抑制退格不会影响我们的可访问性吗?如果是这样,Chrome和Edge就不会有这个问题。它们不使用相同的键盘快捷键吗?

Alt+左箭头在大多数较新的浏览器中是后退按钮的标准

由于这在IE中同样有效,用户仍然可以使用键盘返回

从技术上讲,这可能被视为失败,因为您正在干扰预期的行为,但我个人认为,如果您决定在当前选择的输入为空时禁用backspace键,则整个表单消失带来的不便超过了这一点

确保仅当当前通过(或
)使用类似的方式选择了
时,才会停止正常的退格行为

这样,如果没有选择输入,用户仍然可以使用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中删除的

您禁用它是完全正确的,因为它旨在保护您的用户