Index: test/keystrokes/gtk-demo/role_spin_button.py
===================================================================
--- test/keystrokes/gtk-demo/role_spin_button.py	(revision 3663)
+++ test/keystrokes/gtk-demo/role_spin_button.py	(working copy)
@@ -61,10 +61,10 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Hue spin button Where Am I",
-    ["BUG? - Text is selected, but selection not presented.",
-     "BRAILLE LINE:  'gtk-demo Application Changing color ColorChooser ColorChooser Hue: 240 $l'",
+    ["BRAILLE LINE:  'gtk-demo Application Changing color ColorChooser ColorChooser Hue: 240 $l'",
      "     VISIBLE:  'Hue: 240 $l', cursor=9",
      "SPEECH OUTPUT: 'Hue:'",
+     "SPEECH OUTPUT: 'selected'",
      "SPEECH OUTPUT: 'spin button'",
      "SPEECH OUTPUT: '240'",
      "SPEECH OUTPUT: 'Alt h'"]))
@@ -78,16 +78,17 @@
 sequence.append(PauseAction(3000))
 sequence.append(utils.AssertPresentationAction(
     "Hue spin button Where Am I",
-    ["BUG? - Text is selected, but selection not presented.",
-     "BRAILLE LINE:  'gtk-demo Application Changing color ColorChooser ColorChooser Hue: 240 $l'",
+    ["BRAILLE LINE:  'gtk-demo Application Changing color ColorChooser ColorChooser Hue: 240 $l'",
      "     VISIBLE:  'Hue: 240 $l', cursor=9",
      "BRAILLE LINE:  'gtk-demo Application Changing color ColorChooser ColorChooser Hue: 240 $l'",
      "     VISIBLE:  'Hue: 240 $l', cursor=9",
      "SPEECH OUTPUT: 'Hue:'",
+     "SPEECH OUTPUT: 'selected'",
      "SPEECH OUTPUT: 'spin button'",
      "SPEECH OUTPUT: '240'",
      "SPEECH OUTPUT: 'Alt h'",
      "SPEECH OUTPUT: 'Hue:'",
+     "SPEECH OUTPUT: 'selected'",
      "SPEECH OUTPUT: 'spin button'",
      "SPEECH OUTPUT: '240'",
      "SPEECH OUTPUT: 'Alt h'"]))
Index: src/orca/where_am_I.py
===================================================================
--- src/orca/where_am_I.py	(revision 3664)
+++ src/orca/where_am_I.py	(working copy)
@@ -257,15 +257,33 @@
         'Scale factor: spin button, 4.00, Alt F'):
 
         1. label
-        2. role
-        3. current value
-        4. accelerator (i.e. Alt plus the underlined letter), if any
+        2. selected (if True).
+        3. role
+        4. current value
+        5. accelerator (i.e. Alt plus the underlined letter), if any
         """
 
         utterances = []
         text = self._getObjLabel(obj)
         utterances.append(text)
 
+        try:
+            textObj = obj.queryText()
+        except:
+            pass
+        else:
+            noOfSelections = textObj.getNSelections()
+            if noOfSelections == 1:
+                [string, startOffset, endOffset] = \
+                   textObj.getTextAtOffset(0, pyatspi.TEXT_BOUNDARY_LINE_START)
+                if startOffset == 0 and endOffset == len(string):
+                    # Translators: when the user selects (highlights) text in
+                    # a document, Orca lets them know this.
+                    #
+                    # ONLY TRANSLATE THE PART AFTER THE PIPE CHARACTER |
+                    #
+                    utterances.append(Q_("text|selected"))
+
         text = rolenames.getSpeechForRoleName(obj)
         utterances.append(text)
 
