         self.delegate?.swipeableTableViewCell?(self, didTriggerRightUtilityButtonWithIndex: 0)
         return true
     }
+
+    private func updateAccessibilityLabel() {
+        if let hostname = hostnameLabel.text,
+                  title = titleLabel.text {
+            let unreadStatus = unread ? NSLocalizedString("unread", comment: "Accessibility label for unread article in reading list. It's a past participle - functions as an adjective.") : NSLocalizedString("read", comment: "Accessibility label for read article in reading list. It's a past participle - functions as an adjective.")
+            let string = "\(title), \(unreadStatus), \(hostname)"
+            var label: AnyObject
+            if !unread {
+                // mimic light gray visual dimming by "dimming" the speech by reducing pitch
+                let lowerPitchString = NSMutableAttributedString(string: string as String)
+                lowerPitchString.addAttribute(UIAccessibilitySpeechAttributePitch, value: NSNumber(float: ReadingListTableViewCellUX.ReadAccessibilitySpeechPitch), range: NSMakeRange(0, lowerPitchString.length))
+                label = NSAttributedString(attributedString: lowerPitchString)
+            } else {
+                label = string
+            }
+            // need to use KVC as accessibilityLabel is of type String! and cannot be set to NSAttributedString other way than this
+            // see bottom of page 121 of the PDF slides of WWDC 2012 "Accessibility for iOS" session for indication that this is OK by Apple
+            // also this combined with Swift's strictness is why we cannot simply override accessibilityLabel and return the label directly...
+            setValue(label, forKey: "accessibilityLabel")
+        }
+    }
 }
 
 class ReadingListPanel: UITableViewController, HomePanel, SWTableViewCellDelegate {

            hostnameLabel.textColor = unread ? ReadingListTableViewCellUX.ActiveTextColor : ReadingListTableViewCellUX.DimmedTextColor
            markAsReadButton.setTitle(unread ? ReadingListTableViewCellUX.MarkAsReadButtonTitleText : ReadingListTableViewCellUX.MarkAsUnreadButtonTitleText, forState: UIControlState.Normal)
            markAsReadAction.name = markAsReadButton.titleLabel!.text
        }
    }


    var title: String = "Example" {
        didSet {
            titleLabel.text = title
            updateAccessibilityLabel()
        }
    }

    var url: NSURL = NSURL(string: "http://www.example.com")! {
        didSet {
            hostnameLabel.text = simplifiedHostnameFromURL(url)
            updateAccessibilityLabel()
        }
    }

