mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1578416 - Don't allow children of list item to move before bullet. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D45578 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
78bb2541b3
commit
4b3b42e7be
@ -2203,7 +2203,7 @@ bool Accessible::RemoveChild(Accessible* aChild) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void Accessible::MoveChild(uint32_t aNewIndex, Accessible* aChild) {
|
||||
void Accessible::RelocateChild(uint32_t aNewIndex, Accessible* aChild) {
|
||||
MOZ_DIAGNOSTIC_ASSERT(aChild, "No child was given");
|
||||
MOZ_DIAGNOSTIC_ASSERT(aChild->mParent == this,
|
||||
"A child from different subtree was given");
|
||||
|
@ -394,9 +394,9 @@ class Accessible : public nsISupports {
|
||||
virtual bool RemoveChild(Accessible* aChild);
|
||||
|
||||
/**
|
||||
* Reallocates the child withing its parent.
|
||||
* Reallocates the child within its parent.
|
||||
*/
|
||||
void MoveChild(uint32_t aNewIndex, Accessible* aChild);
|
||||
virtual void RelocateChild(uint32_t aNewIndex, Accessible* aChild);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Accessible tree traverse methods
|
||||
|
@ -2319,7 +2319,7 @@ bool DocAccessible::MoveChild(Accessible* aChild, Accessible* aNewParent,
|
||||
|
||||
if (curParent == aNewParent) {
|
||||
MOZ_ASSERT(aChild->IndexInParent() != aIdxInParent, "No move case");
|
||||
curParent->MoveChild(aIdxInParent, aChild);
|
||||
curParent->RelocateChild(aIdxInParent, aChild);
|
||||
|
||||
#ifdef A11Y_LOG
|
||||
logging::TreeInfo("move child: parent tree after", logging::eVerbose,
|
||||
|
@ -81,6 +81,13 @@ bool HTMLLIAccessible::InsertChildAt(uint32_t aIndex, Accessible* aChild) {
|
||||
return HyperTextAccessible::InsertChildAt(aIndex, aChild);
|
||||
}
|
||||
|
||||
void HTMLLIAccessible::RelocateChild(uint32_t aNewIndex, Accessible* aChild) {
|
||||
// Don't allow moving a child in front of the bullet.
|
||||
if (mBullet && aChild != mBullet && aNewIndex != 0) {
|
||||
HyperTextAccessible::RelocateChild(aNewIndex, aChild);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// HTMLLIAccessible: public
|
||||
|
||||
|
@ -55,6 +55,7 @@ class HTMLLIAccessible : public HyperTextAccessibleWrap {
|
||||
virtual uint64_t NativeState() const override;
|
||||
|
||||
virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) override;
|
||||
virtual void RelocateChild(uint32_t aNewIndex, Accessible* aChild) override;
|
||||
|
||||
// HTMLLIAccessible
|
||||
HTMLListBulletAccessible* Bullet() const { return mBullet; }
|
||||
|
@ -195,6 +195,24 @@
|
||||
await event;
|
||||
}
|
||||
|
||||
function listItemReframe() {
|
||||
testAccessibleTree("li",{ LISTITEM: [
|
||||
{ STATICTEXT: [] },
|
||||
{ TEXT_LEAF: [] },
|
||||
] });
|
||||
|
||||
getNode("li").style.listStylePosition = "inside";
|
||||
document.body.offsetTop; // Flush layout.
|
||||
window.windowUtils.advanceTimeAndRefresh(100);
|
||||
|
||||
testAccessibleTree("li",{ LISTITEM: [
|
||||
{ STATICTEXT: [] },
|
||||
{ TEXT_LEAF: [] },
|
||||
] });
|
||||
|
||||
window.windowUtils.restoreNormalRefresh();
|
||||
}
|
||||
|
||||
async function doTest() {
|
||||
await hideDivFromInsideSpan();
|
||||
|
||||
@ -214,6 +232,8 @@
|
||||
|
||||
await removeShadowRootHost();
|
||||
|
||||
listItemReframe();
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
@ -267,6 +287,12 @@
|
||||
<div><dir>a</dir></div>
|
||||
</div>
|
||||
|
||||
<div id="c11">
|
||||
<ul>
|
||||
<li id="li">Test</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="eventdump"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user