You are here

class FocusFirstCommand in Drupal 9

AJAX command for focusing an element.

This command is provided a selector then does the following:

  • The first element matching the provided selector will become the container where the search for tabbable elements is conducted.
  • If one or more tabbable elements are found within the container, the first of those will receive focus.
  • If no tabbable elements are found within the container, but the container itself is focusable, then the container will receive focus.
  • If the container is not focusable and contains no tabbable elements, the triggering element will remain focused.

Hierarchy

Expanded class hierarchy of FocusFirstCommand

See also

Drupal.AjaxCommands.focusFirst

Related topics

2 files declare their use of FocusFirstCommand
AddFormBase.php in core/modules/media_library/src/Form/AddFormBase.php
AjaxTestFocusFirstForm.php in core/modules/system/tests/modules/ajax_test/src/Form/AjaxTestFocusFirstForm.php

File

core/lib/Drupal/Core/Ajax/FocusFirstCommand.php, line 22

Namespace

Drupal\Core\Ajax
View source
class FocusFirstCommand implements CommandInterface {

  /**
   * The selector of the container with tabbable elements.
   *
   * @var string
   */
  protected $selector;

  /**
   * Constructs an FocusFirstCommand object.
   *
   * @param string $selector
   *   The selector of the container with tabbable elements.
   */
  public function __construct($selector) {
    $this->selector = $selector;
  }

  /**
   * {@inheritdoc}
   */
  public function render() {
    return [
      'command' => 'focusFirst',
      'selector' => $this->selector,
    ];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FocusFirstCommand::$selector protected property The selector of the container with tabbable elements.
FocusFirstCommand::render public function Return an array to be run through json_encode and sent to the client. Overrides CommandInterface::render
FocusFirstCommand::__construct public function Constructs an FocusFirstCommand object.