зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1144322 - Handle tabindex in overridden IsInteractiveHTMLContent methods. r=smaug
This commit is contained in:
Родитель
ff39241b4e
Коммит
e44e20c93d
|
@ -43,7 +43,8 @@ HTMLAudioElement::~HTMLAudioElement()
|
|||
bool
|
||||
HTMLAudioElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const
|
||||
{
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::controls);
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::controls) ||
|
||||
HTMLMediaElement::IsInteractiveHTMLContent(aIgnoreTabindex);
|
||||
}
|
||||
|
||||
already_AddRefed<HTMLAudioElement>
|
||||
|
|
|
@ -151,7 +151,8 @@ NS_IMPL_INT_ATTR(HTMLImageElement, Vspace, vspace)
|
|||
bool
|
||||
HTMLImageElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const
|
||||
{
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::usemap);
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::usemap) ||
|
||||
nsGenericHTMLElement::IsInteractiveHTMLContent(aIgnoreTabindex);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -3224,7 +3224,8 @@ HTMLInputElement::Focus(ErrorResult& aError)
|
|||
bool
|
||||
HTMLInputElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const
|
||||
{
|
||||
return mType != NS_FORM_INPUT_HIDDEN;
|
||||
return mType != NS_FORM_INPUT_HIDDEN ||
|
||||
nsGenericHTMLFormElementWithState::IsInteractiveHTMLContent(aIgnoreTabindex);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
|
|
@ -52,7 +52,8 @@ HTMLObjectElement::~HTMLObjectElement()
|
|||
bool
|
||||
HTMLObjectElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const
|
||||
{
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::usemap);
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::usemap) ||
|
||||
nsGenericHTMLFormElement::IsInteractiveHTMLContent(aIgnoreTabindex);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -129,7 +129,8 @@ nsresult HTMLVideoElement::SetAcceptHeader(nsIHttpChannel* aChannel)
|
|||
bool
|
||||
HTMLVideoElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const
|
||||
{
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::controls);
|
||||
return HasAttr(kNameSpaceID_None, nsGkAtoms::controls) ||
|
||||
HTMLMediaElement::IsInteractiveHTMLContent(aIgnoreTabindex);
|
||||
}
|
||||
|
||||
uint32_t HTMLVideoElement::MozParsedFrames() const
|
||||
|
|
|
@ -18,27 +18,33 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=229925
|
|||
<span id="text">label</span>
|
||||
<input type="button" id="target" value="target">
|
||||
|
||||
<a id="yes1" href="#">a</a>
|
||||
<audio id="yes2" controls></audio>
|
||||
<button id="yes3">button</button>
|
||||
<details id="yes4">details</details>
|
||||
<embed id="yes5">embed</embed>
|
||||
<iframe id="yes6" src="data:text/plain," style="width: 16px; height: 16px;"></iframe>
|
||||
<img id="yes7" src="data:image/png," usemap="#map">
|
||||
<input id="yes8" type="text" size="4">
|
||||
<keygen id="yes9">
|
||||
<label id="yes10">label</label>
|
||||
<object id="yes11" usemap="#map">object</object>
|
||||
<select id="yes12"><option>select</option></select>
|
||||
<textarea id="yes13" cols="1" rows="1"></textarea>
|
||||
<video id="yes14" controls></video>
|
||||
<a class="yes" href="#">a</a>
|
||||
<audio class="yes" controls></audio>
|
||||
<button class="yes">button</button>
|
||||
<details class="yes">details</details>
|
||||
<embed class="yes">embed</embed>
|
||||
<iframe class="yes" src="data:text/plain," style="width: 16px; height: 16px;"></iframe>
|
||||
<img class="yes" src="data:image/png," usemap="#map">
|
||||
<input class="yes" type="text" size="4">
|
||||
<keygen class="yes">
|
||||
<label class="yes">label</label>
|
||||
<object class="yes" usemap="#map">object</object>
|
||||
<select class="yes"><option>select</option></select>
|
||||
<textarea class="yes" cols="1" rows="1"></textarea>
|
||||
<video class="yes" controls></video>
|
||||
|
||||
<audio id="no1"></audio>
|
||||
<img id="no2" src="data:image/png,">
|
||||
<input id="no3" type="hidden">
|
||||
<object id="no4">object</object>
|
||||
<video id="no5"></video>
|
||||
<span id="no6" tabindex="1">tabindex</span>
|
||||
<audio class="no"></audio>
|
||||
<img class="no" src="data:image/png,">
|
||||
<input class="no" type="hidden">
|
||||
<object class="no">object</object>
|
||||
<video class="no"></video>
|
||||
|
||||
<span class="no" tabindex="1">tabindex</span>
|
||||
<audio class="no" tabindex="1"></audio>
|
||||
<img class="no" src="data:image/png," tabindex="1">
|
||||
<input class="no" type="hidden" tabindex="1">
|
||||
<object class="no" tabindex="1">object</object>
|
||||
<video class="no" tabindex="1"></video>
|
||||
</label>
|
||||
</form>
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
@ -47,32 +53,9 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=229925
|
|||
|
||||
var target = document.getElementById("target");
|
||||
|
||||
var yes_nodes = [
|
||||
document.getElementById("yes1"),
|
||||
document.getElementById("yes2"),
|
||||
document.getElementById("yes3"),
|
||||
document.getElementById("yes4"),
|
||||
document.getElementById("yes5"),
|
||||
document.getElementById("yes6"),
|
||||
document.getElementById("yes7"),
|
||||
document.getElementById("yes8"),
|
||||
document.getElementById("yes9"),
|
||||
document.getElementById("yes10"),
|
||||
document.getElementById("yes11"),
|
||||
document.getElementById("yes12"),
|
||||
document.getElementById("yes13"),
|
||||
document.getElementById("yes14"),
|
||||
];
|
||||
var yes_nodes = Array.from(document.getElementsByClassName("yes"));
|
||||
|
||||
var no_nodes = [
|
||||
document.getElementById("text"),
|
||||
document.getElementById("no1"),
|
||||
document.getElementById("no2"),
|
||||
document.getElementById("no3"),
|
||||
document.getElementById("no4"),
|
||||
document.getElementById("no5"),
|
||||
document.getElementById("no6"),
|
||||
];
|
||||
var no_nodes = Array.from(document.getElementsByClassName("no"));
|
||||
|
||||
var target_clicked = false;
|
||||
target.addEventListener("click", function() {
|
||||
|
|
Загрузка…
Ссылка в новой задаче