Modules on the listing page can have their checkboxes disabled and there is no messaging to the end user as to why this is occurring.

My recommendation would be to offer help text as a caption and/or some hover text over the checkbox that describes why a checkbox is disabled for a user.

If this is tied to the module's dependencies, I would recommend that the help text state which modules are leveraging it.

Members fund testing for the Drupal project. Drupal Association Learn more

Comments

nerdstein created an issue. See original summary.

nerdstein’s picture

I'd be happy to work on a patch for this if someone doesn't beat me to it.

nerdstein’s picture

Line 263 of shows:

$row['#required_by'][] = $distribution . (!empty($module->info['explanation']) ? ' (' . $module->info['explanation'] . ')' : '');

This doesn't appear to have any impact on what is actually rendered (not confident, but still digging).

nerdstein’s picture

Status: Active » Needs review
FileSize
4.07 KB

Adding a patch for review that creates hover text for every condition in which the checkbox is disabled on the module listing page (there are several).

Please note - I did not add a help icon, but such a thing could be a logical addition to this patch.

phenaproxima’s picture

Status: Needs review » Needs work
Issue tags: +Needs usability review, +Needs tests

This looks great! Nice usability win. I see no major problems with the fix itself; all my suggestions are nitpicks. This will need tests before it can be committed, though. Thank you for your excellent work, @nerdstein!

  1. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -261,6 +261,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +      $row['enable']['#attributes']['title'] = $this->t("@module required by @distribution", ['@module' => $module->info['name'], '@distribution' => $distribution]);
    

    Nit: Could the array of translation variables be split across multiple lines for readability?

  2. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -294,6 +295,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +      $row['enable']['#attributes']['title'] = $this->t("@module is incompatible. @reasons", ['@module' => $module->info['name'], '@reasons' => $status]);
    

    Same here.

  3. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -313,6 +316,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +          $row['enable']['#attributes']['title'] = $this->t("@module incompatible with version @version", ['@module' => $name . $incompatible_version, '@version' => $modules[$dependency]->info['version']]);
    

    And here.

  4. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -338,6 +343,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +          $row['enable']['#attributes']['title'] = $this->t("@module is required by @dependency", ['@module' => $module->info['name'], '@dependency' => $modules[$dependent]->info['name']]);
    

    Here too.

  5. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -345,6 +351,12 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +      $row['enable']['#attributes']['title'] = $this->t('@module is enabled and can be uninstalled from the `Uninstall` tab', ['@module' => $module->info['name']]);
    

    Und here.

  6. +++ b/core/modules/system/src/Form/ModulesListForm.php
    @@ -321,6 +325,7 @@ protected function buildRow(array $modules, Extension $module, $distribution) {
    +          $row['enable']['#attributes']['title'] = $this->t("@module incompatible with this version of Drupal core", ['@module' => $name]);
    

    Finally...can this be "@module is incompatible..."? :)

phenaproxima’s picture

Issue tags: +Needs screenshots

I just realized that screenshots would probably be helpful to the usability team. :)

Yogesh Pawar’s picture

Assigned: Unassigned » Yogesh Pawar
Yogesh Pawar’s picture

Assigned: Yogesh Pawar » Unassigned
Status: Needs work » Needs review
FileSize
4.29 KB
4.06 KB

Made changes as per suggestions addressed in #5 & also added an interdiff.

Yogesh Pawar’s picture

Status: Needs review » Needs work

Marking this issue for Needs Work for test coverage & screenshots.

Bojhan’s picture

Issue tags: -Needs usability review

Please, add the tag back when there are screens.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Meenakshi Gupta’s picture

After applying the patch it will add hover text over the checkbox that describes why a checkbox is disabled for a user.here are the screenshots for that

Meenakshi Gupta’s picture

Status: Needs work » Needs review
Bojhan’s picture

What about "Taxonomy is enabled. Disable from the Uninstall tab.".

We can also use Uninstall as a verb, but then you use the same word twice.

Meenakshi Gupta’s picture

Good idea done ! here it is with screenshot