diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc index 627e8ed..0884b4c 100644 --- a/core/modules/views/views.theme.inc +++ b/core/modules/views/views.theme.inc @@ -542,6 +542,7 @@ function template_preprocess_views_view_table(&$vars) { // Store rows so that they may be used by further preprocess functions. $result = $vars['result'] = $vars['rows']; $vars['rows'] = array(); + // @todo Remove field_classes to field_attributes. $vars['field_classes'] = array(); $vars['header'] = array(); @@ -606,6 +607,7 @@ function template_preprocess_views_view_table(&$vars) { } // Set up the header label class. + // @todo Rename to header_attributes. $vars['header_classes'][$field] = array(); if ($fields[$field]->options['element_default_classes']) { $vars['header_classes'][$field]['class'][] = 'views-field'; @@ -631,6 +633,8 @@ function template_preprocess_views_view_table(&$vars) { if ($element_label_type) { $vars['header'][$field] = '<' . $element_label_type . '>' . $vars['header'][$field] . ''; } + // Improves accessibility of complex tables. + $vars['header_classes'][$field]['id'] = drupal_html_id('view-' . $field . '-table-column'); } } @@ -657,6 +661,11 @@ function template_preprocess_views_view_table(&$vars) { $vars['field_classes'][$field][$num]['class'][] = $options['info'][$field]['responsive']; } + // Improves accessibility of complex tables. + if (isset($vars['header_classes'][$field]['id'])) { + $vars['field_classes'][$field][$num]['headers'] = array($vars['header_classes'][$field]['id']); + } + if (!empty($fields[$field]) && empty($fields[$field]->options['exclude'])) { $field_output = $handler->getField($num, $field); $element_type = $fields[$field]->elementType(TRUE, TRUE);