diff --git a/src/TypedData/Options/RolesOptions.php b/src/TypedData/Options/RolesOptions.php
index 2193366d587c1e5f4d1051155c29d5a5860dc43a..fe241f2d802a7408baa8e7e9feee38609a5bc5f5 100644
--- a/src/TypedData/Options/RolesOptions.php
+++ b/src/TypedData/Options/RolesOptions.php
@@ -3,6 +3,8 @@
 namespace Drupal\rules\TypedData\Options;
 
 use Drupal\Core\Session\AccountInterface;
+use Drupal\user\Entity\Role;
+use Drupal\user\RoleInterface;
 
 /**
  * Options provider to return a list of user roles.
@@ -13,8 +15,10 @@ class RolesOptions extends OptionsProviderBase {
    * {@inheritdoc}
    */
   public function getPossibleOptions(AccountInterface $account = NULL) {
-    // Use parameter FALSE to include 'Anonymous'.
-    $roles = user_role_names(FALSE);
+    // All roles, including 'Anonymous'.
+    $roles = array_map(function (RoleInterface $role) {
+      return $role->label();
+    }, Role::loadMultiple());
 
     // Sort by the role name.
     asort($roles);