- Timestamp:
- 07/27/12 14:36:59 (12 years ago)
- Location:
- trunk/quest-core-usability/src/main
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/TextInputStatisticsRule.java
r477 r496 60 60 checkTextInputRatio(statistics, results); 61 61 checkTextFieldEntryRepetitions(statistics, results); 62 checkTextFieldNoLetterOrDigitInputs(statistics, results); 62 63 } 63 64 … … 88 89 } 89 90 else if (ratio > 0.5) 91 { 92 severity = UsabilityDefectSeverity.LOW; 93 } 94 else if (ratio > 0.3) 90 95 { 91 96 severity = UsabilityDefectSeverity.INFO; … … 180 185 * TODO: comment 181 186 * 187 * @param statistics 188 * @param results 189 */ 190 //----------------------------------------------------------------------------------------------- 191 private void checkTextFieldNoLetterOrDigitInputs(TextInputStatistics statistics, 192 UsabilityEvaluationResult results) 193 { 194 int allCharactersCount = 0; 195 int noLetterOrDigitCount = 0; 196 197 for (int i = 0; i < statistics.getNoOfTextFieldInputs(); i++) 198 { 199 String[] fragments = statistics.getTextFieldInputFragments(i); 200 for (String fragment : fragments) 201 { 202 String effectiveFragment = fragment.trim(); 203 for (int j = 0; j < effectiveFragment.length(); j++) 204 { 205 if (!Character.isWhitespace(effectiveFragment.charAt(j))) 206 { 207 if (!Character.isLetterOrDigit(effectiveFragment.charAt(j))) 208 { 209 noLetterOrDigitCount++; 210 } 211 allCharactersCount++; 212 } 213 } 214 } 215 } 216 217 float ratio = (float) noLetterOrDigitCount / (float) allCharactersCount; 218 219 UsabilityDefectSeverity severity = null; 220 if (ratio > 0.1) // every 10th sign 221 { 222 severity = UsabilityDefectSeverity.HIGH; 223 } 224 else if (ratio > 0.05) // every 20th sign 225 { 226 severity = UsabilityDefectSeverity.MEDIUM; 227 } 228 else if (ratio > 0.02) // every 50th sign 229 { 230 severity = UsabilityDefectSeverity.LOW; 231 } 232 else if (ratio > 0.01) // every 100th sign 233 { 234 severity = UsabilityDefectSeverity.INFO; 235 } 236 237 if (severity != null) 238 { 239 Map<String, String> parameters = new HashMap<String, String>(); 240 parameters.put("noLetterOrDigitRatio", allCharactersCount + " entered characters of " + 241 "which " + noLetterOrDigitCount + " were no letter or digit"); 242 243 results.addDefect 244 (new UsabilityDefect 245 (severity, UsabilityDefectDescription.TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO, parameters)); 246 } 247 } 248 249 //----------------------------------------------------------------------------------------------- 250 /** 251 * TODO: comment 252 * 182 253 * @param taskTree 183 254 * @param statistics -
trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/UsabilityDefectDescription.java
r475 r496 29 29 { 30 30 TEXT_FIELD_INPUT_RATIO, 31 TEXT_FIELD_INPUT_REPETITIONS; 31 TEXT_FIELD_INPUT_REPETITIONS, 32 TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO; 32 33 33 34 /** */ -
trunk/quest-core-usability/src/main/resources/defectDescriptions_en.xml
r442 r496 2 2 <defectDescriptions 3 3 xmlns="http://quest" 4 xmlns:b="http://quest"5 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6 5 xsi:schemaLocation="http://quest defectDescriptions.xsd"> 7 <b:defectDescription defectId="TEXT_FIELD_INPUT_RATIO"> 6 7 <defectDescription defectId="TEXT_FIELD_INPUT_RATIO"> 8 8 <textFragment> 9 The ratio of interactions that enter text into text fields is 10 relatively high in comparisonwith the other user interactions (9 The ratio of interactions that enter text into text fields is relatively high in comparison 10 with the other user interactions ( 11 11 </textFragment> 12 < b:parameterFragment parameterName="textInputRatio" />12 <parameterFragment parameterName="textInputRatio" /> 13 13 <textFragment> 14 ). This should be reduced. As an 15 example, entering data can also be done using check boxes or combo boxes in the case 16 predefined values must be entered. 14 ). This should be reduced. As an example, entering data can also be done using check boxes 15 or combo boxes in the case predefined values must be entered. 17 16 </textFragment> 18 </b:defectDescription> 17 </defectDescription> 18 19 19 <defectDescription defectId="TEXT_FIELD_INPUT_REPETITIONS"> 20 <textFragment>Several interactions that enter text into text fields repeat 21 tokens such as words or specific signs ( 20 <textFragment> 21 Several interactions that enter text into text fields repeat tokens such as words or 22 specific signs ( 22 23 </textFragment> 23 < b:parameterFragment parameterName="textRepetitionRatio" />24 <parameterFragment parameterName="textRepetitionRatio" /> 24 25 <textFragment> 25 ). This is an indicator that the same data must be 26 entered several times. This could be better supported by</textFragment> 26 ). This is an indicator that the same data must be entered several times. This could be 27 better supported by using e.g. automatic filling of input fields, provision of combo 28 boxes or lists prefilled with data that was already entered previously. 29 </textFragment> 30 </defectDescription> 31 32 <defectDescription defectId="TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO"> 33 <textFragment> 34 Much of the text entered into text fields contains signs other than letters or digits ( 35 </textFragment> 36 <parameterFragment parameterName="noLetterOrDigitRatio" /> 37 <textFragment> 38 ). This is an indicator that the entered data has to follow a specific syntax. This should 39 be supported by syntax checking, auto completion or even providing the text fields in a way 40 that does not require the entering of special signs as they are already included at the right 41 positions. 42 </textFragment> 27 43 </defectDescription> 28 44 </defectDescriptions>
Note: See TracChangeset
for help on using the changeset viewer.