Index: trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/TextInputStatisticsRule.java
===================================================================
--- trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/TextInputStatisticsRule.java	(revision 495)
+++ trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/TextInputStatisticsRule.java	(revision 496)
@@ -60,4 +60,5 @@
     checkTextInputRatio(statistics, results);
     checkTextFieldEntryRepetitions(statistics, results);
+    checkTextFieldNoLetterOrDigitInputs(statistics, results);
   }
 
@@ -88,4 +89,8 @@
     }
     else if (ratio > 0.5)
+    {
+      severity = UsabilityDefectSeverity.LOW;
+    }
+    else if (ratio > 0.3)
     {
       severity = UsabilityDefectSeverity.INFO;
@@ -180,4 +185,70 @@
    * TODO: comment
    *
+   * @param statistics
+   * @param results
+   */
+  //-----------------------------------------------------------------------------------------------
+  private void checkTextFieldNoLetterOrDigitInputs(TextInputStatistics       statistics,
+                                                   UsabilityEvaluationResult results)
+  {
+    int allCharactersCount = 0;
+    int noLetterOrDigitCount = 0;
+
+    for (int i = 0; i < statistics.getNoOfTextFieldInputs(); i++)
+    {
+      String[] fragments = statistics.getTextFieldInputFragments(i);
+      for (String fragment : fragments)
+      {
+        String effectiveFragment = fragment.trim();
+        for (int j = 0; j < effectiveFragment.length(); j++)
+        {
+          if (!Character.isWhitespace(effectiveFragment.charAt(j)))
+          {
+            if (!Character.isLetterOrDigit(effectiveFragment.charAt(j)))
+            {
+              noLetterOrDigitCount++;
+            }
+            allCharactersCount++;
+          }
+        }
+      }
+    }
+    
+    float ratio = (float) noLetterOrDigitCount / (float) allCharactersCount;
+    
+    UsabilityDefectSeverity severity = null;
+    if (ratio > 0.1) // every 10th sign
+    {
+      severity = UsabilityDefectSeverity.HIGH;
+    }
+    else if (ratio > 0.05) // every 20th sign
+    {
+      severity = UsabilityDefectSeverity.MEDIUM;
+    }
+    else if (ratio > 0.02) // every 50th sign
+    {
+      severity = UsabilityDefectSeverity.LOW;
+    }
+    else if (ratio > 0.01) // every 100th sign
+    {
+      severity = UsabilityDefectSeverity.INFO;
+    }
+    
+    if (severity != null)
+    {
+      Map<String, String> parameters = new HashMap<String, String>();
+      parameters.put("noLetterOrDigitRatio", allCharactersCount + " entered characters of " +
+                     "which " + noLetterOrDigitCount + " were no letter or digit");
+
+      results.addDefect
+        (new UsabilityDefect
+           (severity, UsabilityDefectDescription.TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO, parameters));
+    }
+  }
+
+  //-----------------------------------------------------------------------------------------------
+  /**
+   * TODO: comment
+   *
    * @param taskTree
    * @param statistics
Index: trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/UsabilityDefectDescription.java
===================================================================
--- trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/UsabilityDefectDescription.java	(revision 495)
+++ trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/UsabilityDefectDescription.java	(revision 496)
@@ -29,5 +29,6 @@
 {
   TEXT_FIELD_INPUT_RATIO,
-  TEXT_FIELD_INPUT_REPETITIONS;
+  TEXT_FIELD_INPUT_REPETITIONS,
+  TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO;
 
   /** */
Index: trunk/quest-core-usability/src/main/resources/defectDescriptions_en.xml
===================================================================
--- trunk/quest-core-usability/src/main/resources/defectDescriptions_en.xml	(revision 495)
+++ trunk/quest-core-usability/src/main/resources/defectDescriptions_en.xml	(revision 496)
@@ -2,27 +2,43 @@
 <defectDescriptions
   xmlns="http://quest"
-  xmlns:b="http://quest"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://quest defectDescriptions.xsd">
-  <b:defectDescription defectId="TEXT_FIELD_INPUT_RATIO">
+  
+  <defectDescription defectId="TEXT_FIELD_INPUT_RATIO">
     <textFragment>
-      The ratio of interactions that enter text into text fields is
-      relatively high in comparison with the other user interactions (
+      The ratio of interactions that enter text into text fields is relatively high in comparison
+      with the other user interactions (
     </textFragment>
-    <b:parameterFragment parameterName="textInputRatio" />
+    <parameterFragment parameterName="textInputRatio" />
     <textFragment>
-      ). This should be reduced. As an
-      example, entering data can also be done using check boxes or combo boxes in the case
-      predefined values must be entered.
+      ). This should be reduced. As an example, entering data can also be done using check boxes
+      or combo boxes in the case predefined values must be entered.
     </textFragment>
-  </b:defectDescription>
+  </defectDescription>
+  
   <defectDescription defectId="TEXT_FIELD_INPUT_REPETITIONS">
-    <textFragment>Several interactions that enter text into text fields repeat
-      tokens such as words or specific signs (
+    <textFragment>
+      Several interactions that enter text into text fields repeat tokens such as words or
+      specific signs (
     </textFragment>
-    <b:parameterFragment parameterName="textRepetitionRatio" />
+    <parameterFragment parameterName="textRepetitionRatio" />
     <textFragment>
-      ). This is an indicator that the same data must be
-      entered several times. This could be better supported by</textFragment>
+      ). This is an indicator that the same data must be entered several times. This could be
+      better supported by using e.g. automatic filling of input fields, provision of combo
+      boxes or lists prefilled with data that was already entered previously. 
+    </textFragment>
+  </defectDescription>
+  
+  <defectDescription defectId="TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO">
+    <textFragment>
+      Much of the text entered into text fields contains signs other than letters or digits (
+    </textFragment>
+    <parameterFragment parameterName="noLetterOrDigitRatio" />
+    <textFragment>
+      ). This is an indicator that the entered data has to follow a specific syntax. This should
+      be supported by syntax checking, auto completion or even providing the text fields in a way
+      that does not require the entering of special signs as they are already included at the right
+      positions.
+    </textFragment>
   </defectDescription>
 </defectDescriptions>
