diff --git a/user/src/com/google/gwt/user/client/ui/CustomButton.java b/user/src/com/google/gwt/user/client/ui/CustomButton.java
index ad437f7..8c1ded7 100644
--- a/user/src/com/google/gwt/user/client/ui/CustomButton.java
+++ b/user/src/com/google/gwt/user/client/ui/CustomButton.java
@@ -16,7 +16,7 @@
 
 package com.google.gwt.user.client.ui;
 
-import com.google.gwt.aria.client.CommonAttributeTypes.BooleanAndUndefined;
+import com.google.gwt.aria.client.PressedValue;
 import com.google.gwt.aria.client.Roles;
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.NativeEvent;
@@ -999,7 +999,7 @@
 
   private void setAriaPressed(Face newFace) {
     boolean pressed = (newFace.getFaceID() & DOWN_ATTRIBUTE) == 1;
-    Roles.getButtonRole().setAriaPressedState(getElement(), BooleanAndUndefined.of(pressed));
+    Roles.getButtonRole().setAriaPressedState(getElement(), PressedValue.of(pressed));
   }
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/Tree.java b/user/src/com/google/gwt/user/client/ui/Tree.java
index e87c57d..bf8d109 100644
--- a/user/src/com/google/gwt/user/client/ui/Tree.java
+++ b/user/src/com/google/gwt/user/client/ui/Tree.java
@@ -15,9 +15,10 @@
  */
 package com.google.gwt.user.client.ui;
 
-import com.google.gwt.aria.client.CommonAttributeTypes.BooleanAndUndefined;
 import com.google.gwt.aria.client.CommonAttributeTypes.IdReference;
+import com.google.gwt.aria.client.ExpandedValue;
 import com.google.gwt.aria.client.Roles;
+import com.google.gwt.aria.client.SelectedValue;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
@@ -1415,19 +1416,14 @@
       Roles.getTreeitemRole().removeAriaExpandedState(curSelectionContentElem);
 
     } else {
-      if (curSelection.getState()) {
-        Roles.getTreeitemRole().setAriaExpandedState(curSelectionContentElem,
-            BooleanAndUndefined.of(true));
-      } else {
-        Roles.getTreeitemRole().setAriaExpandedState(curSelectionContentElem,
-            BooleanAndUndefined.of(false));
-      }
+      Roles.getTreeitemRole().setAriaExpandedState(curSelectionContentElem,
+            ExpandedValue.of(curSelection.getState()));
     }
 
     // Make sure that 'aria-selected' is true.
 
     Roles.getTreeitemRole().setAriaSelectedState(curSelectionContentElem,
-        BooleanAndUndefined.of(true));
+        SelectedValue.of(true));
 
     // Update the 'aria-activedescendant' state for the focusable element to
     // match the id of the currently selected item
