diff --git a/plugins/views_plugin_style_grid.inc b/plugins/views_plugin_style_grid.inc
index cc66cdb..bdc9022 100644
--- a/plugins/views_plugin_style_grid.inc
+++ b/plugins/views_plugin_style_grid.inc
@@ -20,6 +20,7 @@ class views_plugin_style_grid extends views_plugin_style {
     $options['alignment'] = array('default' => 'horizontal');
     $options['fill_single_line'] = array('default' => TRUE);
     $options['summary'] = array('default' => '');
+    $options['caption'] = array('default' => '');
 
     return $options;
   }
@@ -41,7 +42,7 @@ class views_plugin_style_grid extends views_plugin_style {
       '#default_value' => $this->options['alignment'],
       '#description' => t('Horizontal alignment will place items starting in the upper left and moving right. Vertical alignment will place items starting in the upper left and moving down.'),
     );
-    
+
     $form['fill_single_line'] = array(
       '#type' => 'checkbox',
       '#title' => t('Fill up single line'),
@@ -49,10 +50,17 @@ class views_plugin_style_grid extends views_plugin_style {
       '#default_value' => !empty($this->options['fill_single_line']),
     );
 
+    $form['caption'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Short description of table'),
+      '#description' => t('Include a caption for better accessibility of your table.'),
+      '#default_value' => $this->options['caption'],
+    );
+
     $form['summary'] = array(
       '#type' => 'textfield',
       '#title' => t('Table summary'),
-      '#description' => t('This value will be displayed as table-summary attribute in the html. Set this for better accessiblity of your site.'),
+      '#description' => t('This value will be displayed as table-summary attribute in the html. Use this to give a summary of complex tables.'),
       '#default_value' => $this->options['summary'],
     );
   }
diff --git a/plugins/views_plugin_style_table.inc b/plugins/views_plugin_style_table.inc
index 0454fd1..b1a84ec 100644
--- a/plugins/views_plugin_style_table.inc
+++ b/plugins/views_plugin_style_table.inc
@@ -20,6 +20,7 @@ class views_plugin_style_table extends views_plugin_style {
     $options['sticky'] = array('default' => FALSE);
     $options['order'] = array('default' => 'asc');
     $options['summary'] = array('default' => '');
+    $options['caption'] = array('default' => '');
 
     return $options;
   }
@@ -165,10 +166,17 @@ class views_plugin_style_table extends views_plugin_style {
       '#description' => t('If a default sort order is selected, what order should it use by default.'),
     );
 
+    $form['caption'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Short description of table'),
+      '#description' => t('Include a caption for better accessibility of your table.'),
+      '#default_value' => $this->options['caption'],
+    );
+
     $form['summary'] = array(
       '#type' => 'textfield',
       '#title' => t('Table summary'),
-      '#description' => t('This value will be displayed as table-summary attribute in the html. Set this for better accessiblity of your site.'),
+      '#description' => t('This value will be displayed as table-summary attribute in the html. Use this to give a summary of complex tables.'),
       '#default_value' => $this->options['summary'],
     );
 
diff --git a/theme/theme.inc b/theme/theme.inc
index b3fda8e..3d2c577 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -419,6 +419,9 @@ function template_preprocess_views_view_table(&$vars) {
   if (!empty($handler->options['summary'])) {
     $vars['attributes'] = drupal_attributes(array('summary' => $handler->options['summary']));
   }
+
+  $vars['caption'] = filter_xss_admin($handler->options['caption']);
+
 }
 
 /**
@@ -502,6 +505,8 @@ function template_preprocess_views_view_grid(&$vars) {
   if (!empty($handler->options['summary'])) {
     $vars['attributes'] = drupal_attributes(array('summary' => $handler->options['summary']));
   }
+
+  $vars['caption'] = filter_xss_admin($handler->options['caption']);
 }
 
 /**
diff --git a/theme/views-view-grid.tpl.php b/theme/views-view-grid.tpl.php
index 9fe5e97..4da70d7 100644
--- a/theme/views-view-grid.tpl.php
+++ b/theme/views-view-grid.tpl.php
@@ -14,6 +14,10 @@
   <h3><?php print $title; ?></h3>
 <?php endif; ?>
 <table class="<?php print $class; ?>"<?php print $attributes; ?>>
+  <?php if (!empty($caption)) : ?>
+    <caption><?php print $caption; ?></caption>
+  <?php endif; ?>
+
   <tbody>
     <?php foreach ($rows as $row_number => $columns): ?>
       <?php
diff --git a/theme/views-view-table.tpl.php b/theme/views-view-table.tpl.php
index f1ce270..bb26086 100644
--- a/theme/views-view-table.tpl.php
+++ b/theme/views-view-table.tpl.php
@@ -5,6 +5,7 @@
  *
  * - $title : The title of this group of rows.  May be empty.
  * - $header: An array of header labels keyed by field id.
+ * - $caption: The caption for this table. May be empty.
  * - $fields: An array of CSS IDs to use for each field id.
  * - $class: A class or classes to apply to the table, based on settings.
  * - $row_classes: An array of classes to apply to each row, indexed by row
@@ -15,8 +16,8 @@
  */
 ?>
 <table class="<?php print $class; ?>"<?php print $attributes; ?>>
-  <?php if (!empty($title)) : ?>
-    <caption><?php print $title; ?></caption>
+  <?php if (!empty($title) || !empty($caption)) : ?>
+    <caption><?php print $caption . $title; ?></caption>
   <?php endif; ?>
   <thead>
     <tr>
