How to add autocomplete to a textarea on a form?
Textareas don't support autocomplete out of the box, you have to get a bit creative to make it work. 

First you'll need to override the attach method of the autocomplete behaviour; add a library with a JS file containing this:

(function ($) {
  Drupal.behaviors.autocomplete.attach = function attach(context) {
    var $autocomplete = $(context).find('input.form-autocomplete,textarea.form-autocomplete').once('autocomplete');
    if ($autocomplete.length) {
      var blacklist = $autocomplete.attr('data-autocomplete-first-character-blacklist');
      $.extend(Drupal.autocomplete.options, {
        firstCharacterBlacklist: blacklist || ''
      });

      $autocomplete.autocomplete(Drupal.autocomplete.options).each(function () {
        $(this).data('ui-autocomplete')._renderItem = Drupal.autocomplete.options.renderItem;
      });

      $autocomplete.on('compositionstart.autocomplete', function () {
        Drupal.autocomplete.options.isComposing = true;
      });
      $autocomplete.on('compositionend.autocomplete', function () {
        Drupal.autocomplete.options.isComposing = false;
      });
    }
  };
})(jQuery);


The function is a straight copy of the core attach method, with the textarea added to the selectors, and a few references altered.

Then you'll need to add the autocomplete process method to the form element (it's not there by default), and also reference your library:

use Drupal\Core\Render\Element\Textarea;

...

$form['text_area'] = [
  '#type' =&gt; 'textarea',
  '#title' =&gt; t('Test text area'),
  '#default_value' =&gt; $authentication_configuration-&gt;get('text_area'),
  '#autocomplete_route_name' =&gt; 'my_module.autocomplete_name',
  '#process' =&gt; [
    [Textarea::class, 'processAutocomplete'],
  ],
  '#attached' =&gt; [
    'library' =&gt; [
      'mymodule/autocomplete'
    ],
  ],
];


Clear the cache and you should see the results immediately.