Index: src/orca/scripts/toolkits/Gecko/speech_generator.py
===================================================================
--- src/orca/scripts/toolkits/Gecko/speech_generator.py	(revision 4471)
+++ src/orca/scripts/toolkits/Gecko/speech_generator.py	(working copy)
@@ -29,7 +29,6 @@
 __copyright__ = "Copyright (c) 2005-2008 Sun Microsystems Inc."
 __license__   = "LGPL"
 
-import math
 import pyatspi
 
 import orca.rolenames as rolenames
@@ -760,41 +759,8 @@
             return speechgenerator.SpeechGenerator.\
                        _getSpeechForSlider(self, obj, already_focused)
 
-        value = obj.queryValue()
+        valueString = self._script.getTextForValue(obj)
 
-        # OK, this craziness is all about trying to figure out the most
-        # meaningful formatting string for the floating point values.
-        # The number of places to the right of the decimal point should
-        # be set by the minimumIncrement, but the minimumIncrement isn't
-        # always set.  So...we'll default the minimumIncrement to 1/100
-        # of the range.  But, if max == min, then we'll just go for showing
-        # them off to two meaningful digits.
-        #
-        try:
-            minimumIncrement = value.minimumIncrement
-        except:
-            minimumIncrement = 0.0
-
-        if minimumIncrement == 0.0:
-            minimumIncrement = (value.maximumValue - value.minimumValue) \
-                               / 100.0
-
-        try:
-            decimalPlaces = max(0, -math.log10(minimumIncrement))
-        except:
-            try:
-                decimalPlaces = max(0, -math.log10(value.minimumValue))
-            except:
-                try:
-                    decimalPlaces = max(0, -math.log10(value.maximumValue))
-                except:
-                    decimalPlaces = 0
-
-        formatter = "%%.%df" % decimalPlaces
-        valueString = formatter % value.currentValue
-        #minString   = formatter % value.minimumValue
-        #maxString   = formatter % value.maximumValue
-
         if already_focused:
             utterances = [valueString]
         else:
Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 4471)
+++ src/orca/default.py	(working copy)
@@ -6008,6 +6008,14 @@
         Returns a string representing the value.
         """
 
+        # Use ARIA "valuetext" attribute if present.  See 
+        # http://bugzilla.gnome.org/show_bug.cgi?id=552965
+        #
+        attributes = obj.getAttributes()
+        for attribute in attributes:
+            if attribute.startswith("valuetext"):
+                return attribute.split(":")[-1]
+
         try:
             value = obj.queryValue()
         except NotImplementedError:
