Javascript 浏览器供应商是否必须将relatedTarget实现为blur事件对象的成员?

Javascript 浏览器供应商是否必须将relatedTarget实现为blur事件对象的成员?,javascript,dom,w3c,Javascript,Dom,W3c,首先,我想说的是,我已经(几乎)阅读了关于blur事件和relatedTarget的所有其他问题,并且我已经理解了它们是如何协同工作的 然而,从我看到的规范来看,我还不明白(从规范的角度来看)浏览器供应商是否必须实现relatedTarget 在过去的几年中,MDN似乎已经发展成为某种权威规范。因此,根据,毫无疑问,relatedTarget始终是blur事件对象的成员,并引用焦点所在的DOM元素(让我们忽略边缘情况,如在窗口外进行Tab、对嵌套文档进行Tab等) 但是,同一页引用了基本规范,该

首先,我想说的是,我已经(几乎)阅读了关于
blur
事件和
relatedTarget
的所有其他问题,并且我已经理解了它们是如何协同工作的

然而,从我看到的规范来看,我还不明白(从规范的角度来看)浏览器供应商是否必须实现
relatedTarget

在过去的几年中,MDN似乎已经发展成为某种权威规范。因此,根据,毫无疑问,
relatedTarget
始终是
blur
事件对象的成员,并引用焦点所在的DOM元素(让我们忽略边缘情况,如在窗口外进行Tab、对嵌套文档进行Tab等)

但是,同一页引用了基本规范,该规范在§5.2.1.2中规定:

聚焦凡尼特。相关目标
相关目标应初始化为失去焦点的元素(在焦点或focusin事件的情况下)或获得焦点的元素(在模糊或focusout事件的情况下)

这里,术语“应该”的使用明确表示浏览器供应商可能决定采取不同的做法:关于此类术语的使用,在第一页,我们发现:

3如果这个词或形容词“推荐”,意味着在特定情况下可能存在忽略特定项目的正当理由,但在选择不同课程之前,必须理解并仔细权衡其全部含义

这确实给人留下了这样的印象:浏览器供应商在这里会做任何他们想做的事情

相比之下,更让我担心的是,它给人的印象是,
relatedTarget
将再次作为
blur
事件对象的一部分实现

我应该从中得到什么


请注意,我不是在问浏览器的实际行为。我只是想知道,根据现有规范(如有)或草案,浏览器供应商是否必须将
relatedTarget
作为
blur
事件对象的一部分来实现。

我无法给出明确的答案,但我注意到文本中说的是“应该”而不是“应该”。这意味着RFC2119不起作用,这里的“应该”表示不同的意思。FocusEventInit对象实际上是由事件构造函数的调用方提供的输入。它的描述说明了调用者需要做什么才能正确构造事件,但它不能强制任何调用者必须做什么,因为调用者可能是您的代码而不是浏览器代码。非常感谢,+1。我决不会怀疑大写/小写真的会起作用。不过,我应该看到这一点,因为W3C草案确实使用了这两种变体(
should
should
),所以我真的应该问问自己这是为什么。如果你能回答我的意见,我很乐意接受。