Index: src/orca/default.py
===================================================================
RCS file: /cvs/gnome/orca/src/orca/default.py,v
retrieving revision 1.242
diff -u -r1.242 default.py
--- src/orca/default.py	15 Nov 2006 03:22:26 -0000	1.242
+++ src/orca/default.py	17 Nov 2006 18:02:10 -0000
@@ -2596,37 +2596,23 @@
                 else:
                     allAttributes = charDict
 
+            # Get a dictionary of the text attributes that the user cares
+            # about.
+            #
+            userAttributes = self.textAttrsToDictionary( \
+                                settings.enabledTextAttributes)
+
             # Create a dictionary of just the items we are interested in.
             # Always include size and family-name. For the others, if the
             # value is the default, then ignore it.
             #
             attributes = {}
-            attributes['size']        = allAttributes.get('size')
-            attributes['family-name'] = allAttributes.get('family-name')
-
-            attr = allAttributes.get('weight')
-            if attr != "400":
-                attributes['weight'] = attr
-
-            attr = allAttributes.get('indent')
-            if attr != "0":
-                attributes['indent'] = attr
-
-            attr = allAttributes.get('underline')
-            if attr != "none":
-                attributes['underline'] = attr
-
-            attr = allAttributes.get('strikethrough')
-            if attr != "false":
-                attributes['strikethrough'] = attr
-
-            attr = allAttributes.get('justification')
-            if attr != "left":
-                attributes['justification'] = attr
-
-            attr = allAttributes.get('style')
-            if attr != "normal":
-                attributes['style'] = attr
+            for key in userAttributes.keys():
+                if allAttributes.has_key(key):
+                    textAttr = allAttributes.get(key)
+                    userAttr = userAttributes.get(key)
+                    if textAttr != userAttr or len(userAttr) == 0:
+                        attributes[key] = textAttr
 
             self.outputCharAttributes(attributes)
 
Index: src/orca/settings.py
===================================================================
RCS file: /cvs/gnome/orca/src/orca/settings.py,v
retrieving revision 1.89
diff -u -r1.89 settings.py
--- src/orca/settings.py	16 Nov 2006 17:21:15 -0000	1.89
+++ src/orca/settings.py	17 Nov 2006 18:02:10 -0000
@@ -336,6 +336,16 @@
 #
 readTableCellRow    = True
 
+# The default set of text attributes to speak to the user. Specific
+# application scripts (or individual users can override these values if
+# so desired. Each of these text attributes is of the form <key>:<value>;
+# The <value> part will be the "default" value for that attribute. In
+# other words, if the attribute for a given piece of text has that value,
+# it won't be spoken. If no value part is given, then that attribute will
+# always be spoken.
+
+enabledTextAttributes = "size:; family-name:; weight:400; indent:0; underline:none; strikethrough:false; justification:left; style:normal;"
+
 # The limit to enable a repeat character count to be spoken.
 # If set to 0, then there will be no repeat character count.
 # Each character will be spoken singularly (i.e. "dash dash
