How to create a list of vocabulary names for a widget?
As the vocabulary is an entity, you can find his name id (taxonomy_vocabulary) in Drupal\taxonomy\Entity\Vocabulary.

To load all the available vocabularies you can use the following code:

$vocabularies = \Drupal::entityTypeManager()-&gt;getStorage('taxonomy_vocabulary')-&gt;loadMultiple();


To create the dependent taxonomy terms select I recommend you to take a look at the ajax examples in the Examples for Developers module.