_blank attribute doesn't get set
When you write $variables['options']['attributes'] = ['target' =&gt; '_blank'] you are replacing all attributes, never ever do that! 

Only set specific keys:
$variables['options']['attributes']['target'] = '_blank'.

If that key is an array, append your value:
$variables['options']['attributes']['class'][] = 'appended_class'