feat: add keyboard navigation controller (#8924)

* feat: add keyboard navigation controller

* chore: add tests

* chore: fix tsdoc
This commit is contained in:
Maribeth Moffatt
2025-05-29 13:48:54 -07:00
committed by GitHub
parent 3cbca8e4b6
commit 0498ed6174
5 changed files with 112 additions and 0 deletions

View File

@@ -219,6 +219,7 @@
import './jso_deserialization_test.js';
import './jso_serialization_test.js';
import './json_test.js';
import './keyboard_navigation_controller_test.js';
import './layering_test.js';
import './blocks/lists_test.js';
import './blocks/logic_ternary_test.js';

View File

@@ -0,0 +1,37 @@
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {assert} from '../../node_modules/chai/chai.js';
import {
sharedTestSetup,
sharedTestTeardown,
} from './test_helpers/setup_teardown.js';
suite('Keyboard Navigation Controller', function () {
setup(function () {
sharedTestSetup.call(this);
Blockly.keyboardNavigationController.setIsActive(false);
});
teardown(function () {
sharedTestTeardown.call(this);
Blockly.keyboardNavigationController.setIsActive(false);
});
test('Setting active keyboard navigation adds css class', function () {
Blockly.keyboardNavigationController.setIsActive(true);
assert.isTrue(
document.body.classList.contains('blocklyKeyboardNavigation'),
);
});
test('Disabling active keyboard navigation removes css class', function () {
Blockly.keyboardNavigationController.setIsActive(false);
assert.isFalse(
document.body.classList.contains('blocklyKeyboardNavigation'),
);
});
});