I would suggest not to "show" examples on the CAPTCHA example screen and/or show some descriptive text about why the user cannot see an example of Hidden CAPTCHA. The situation at the moment might irritate non-techy users.

I don't know if this is a CAPTCHA issue (if so please move this issue) or with this module.

CommentFileSizeAuthor
#2 HC example1.PNG26.24 KBdddave
#2 HC more examples.PNG88.91 KBdddave

Comments

AlexisWilke’s picture

I'm not too sure I follow you here. Is there something not working for you?!

Thank you.
Alexis Wilke

dddave’s picture

Priority: Normal » Minor
StatusFileSize
new88.91 KB
new26.24 KB

Hi Alexis,
I am coming stricktly from an usability standpoint, especially considering novice users.
They have no easy way to test this module and thus understand it (not everybody reads the project page). If they look for an example they might be irritated.

I've attached two pics to clarify. The first shows a clear example for a math CAPTCHA but where is my example for hidden CAPTCHA a user might think. Clicking on the 10 more examples link makes it really confusing (pic 2).

I am downgrading this because the module works well otherwise.

AlexisWilke’s picture

Project: Hidden CAPTCHA » CAPTCHA

dddave,

Ah! I understand what you mean now. Hmmm... there isn't a way for the Hidden CAPTCHA to know that it's being displayed in an example, which probably makes sense by default.

We would need the main CAPTCHA to be modified a bit to avoid returning the challenges when queried for examples.

In the following, the author of the CAPTCHA module could add a parameter which we could then check to know that examples are being queried.

    foreach (module_implements('captcha') as $mkey => $module) {
      $challenges = call_user_func_array($module .'_captcha', array('list'));
      if ($challenges) {

For example, the following would work (added the 'examples' parameter in the array):

    foreach (module_implements('captcha') as $mkey => $module) {
      $challenges = call_user_func_array($module .'_captcha', array('list', 'examples'));
      if ($challenges) {

then in the hidden_captcha_captcha() function, I could check the 2nd parameter like this:

function hidden_captcha_captcha($op, $captcha_type = '') {
  switch ($op) {
    case 'list':
      if ($captcha_type == 'examples') {
        return NULL;
      }
      return array('Hidden CAPTCHA');

I'm moving the issue to the CAPTCHA issue queue since without a fix in the main CAPTCHA there isn't anything I can do to fix the problem (not without a serious hack such as testing the PHP stack!)

Thank you.
Alexis Wilke

wundo’s picture

Issue summary: View changes
Status: Active » Closed (outdated)