diff --git src/wp-includes/class-wp-customize-control.php src/wp-includes/class-wp-customize-control.php
index 07c6dcfce1..3d00803131 100644
--- src/wp-includes/class-wp-customize-control.php
+++ src/wp-includes/class-wp-customize-control.php
@@ -37,12 +37,18 @@ class WP_Customize_Control {
 	public $instance_number;
 
 	/**
+	 * Customizer manager.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var WP_Customize_Manager
 	 */
 	public $manager;
 
 	/**
+	 * Control ID.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
@@ -51,6 +57,7 @@ class WP_Customize_Control {
 	/**
 	 * All settings tied to the control.
 	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var array
 	 */
@@ -59,6 +66,7 @@ class WP_Customize_Control {
 	/**
 	 * The primary setting for the control (if there is one).
 	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
@@ -77,38 +85,56 @@ class WP_Customize_Control {
 	public $capability;
 
 	/**
+	 * Order priority to load the control in Customizer.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var int
 	 */
 	public $priority = 10;
 
 	/**
+	 * Section the control belongs to.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
 	public $section = '';
 
 	/**
+	 * Label for the control.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
 	public $label = '';
 
 	/**
+	 * Description for the control.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
 	public $description = '';
 
 	/**
-	 * @todo: Remove choices
+	 * List of choices for 'radio' or 'select' type controls, where values are the keys, and labels are the values.
 	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var array
 	 */
 	public $choices = array();
 
 	/**
+	 * List of custom input attributes for control output, where attribute names are the keys and values are the values.
+	 *
+	 * Not used for 'checkbox', 'radio', 'select', 'textarea', or 'dropdown-pages' control types.
+	 *
+	 * @since 4.0.0
 	 * @access public
 	 * @var array
 	 */
@@ -131,6 +157,9 @@ class WP_Customize_Control {
 	public $json = array();
 
 	/**
+	 * Control's Type.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
diff --git src/wp-includes/class-wp-customize-manager.php src/wp-includes/class-wp-customize-manager.php
index 097be0cf5e..df26d6e02a 100644
--- src/wp-includes/class-wp-customize-manager.php
+++ src/wp-includes/class-wp-customize-manager.php
@@ -642,6 +642,7 @@ final class WP_Customize_Manager {
 	 * Get the theme being customized.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return WP_Theme
 	 */
@@ -656,6 +657,7 @@ final class WP_Customize_Manager {
 	 * Get the registered settings.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return array
 	 */
@@ -667,6 +669,7 @@ final class WP_Customize_Manager {
 	 * Get the registered controls.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return array
 	 */
@@ -678,6 +681,7 @@ final class WP_Customize_Manager {
 	 * Get the registered containers.
 	 *
 	 * @since 4.0.0
+	 * @access public
 	 *
 	 * @return array
 	 */
@@ -689,6 +693,7 @@ final class WP_Customize_Manager {
 	 * Get the registered sections.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return array
 	 */
@@ -712,6 +717,7 @@ final class WP_Customize_Manager {
 	 * Checks if the current theme is active.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return bool
 	 */
@@ -723,6 +729,7 @@ final class WP_Customize_Manager {
 	 * Register styles/scripts and initialize the preview of each setting
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function wp_loaded() {
 
@@ -762,6 +769,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.7.0
+	 * @access public
 	 *
 	 * @param int $status Status.
 	 * @return int
@@ -1546,6 +1554,7 @@ final class WP_Customize_Manager {
 	 * Print JavaScript settings.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function customize_preview_init() {
 
@@ -1683,6 +1692,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.7.0 Customizer no longer supports IE8, so all supported browsers recognize HTML5.
+	 * @access public
 	 */
 	public function customize_preview_html5() {
 		_deprecated_function( __FUNCTION__, '4.7.0' );
@@ -1758,6 +1768,7 @@ final class WP_Customize_Manager {
 	 * Print JavaScript settings for preview frame.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function customize_preview_settings() {
 		$post_values = $this->unsanitized_post_values( array( 'exclude_changeset' => true ) );
@@ -1877,6 +1888,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.7.0
+	 * @access public
 	 */
 	public function customize_preview_signature() {
 		_deprecated_function( __METHOD__, '4.7.0' );
@@ -1887,6 +1899,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.7.0
+	 * @access public
 	 *
 	 * @param mixed $return Value passed through for {@see 'wp_die_handler'} filter.
 	 * @return mixed Value passed through for {@see 'wp_die_handler'} filter.
@@ -1901,6 +1914,7 @@ final class WP_Customize_Manager {
 	 * Is it a theme preview?
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return bool True if it's a preview, false if not.
 	 */
@@ -1912,6 +1926,7 @@ final class WP_Customize_Manager {
 	 * Retrieve the template name of the previewed theme.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return string Template name.
 	 */
@@ -1923,6 +1938,7 @@ final class WP_Customize_Manager {
 	 * Retrieve the stylesheet name of the previewed theme.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return string Stylesheet name.
 	 */
@@ -1934,6 +1950,7 @@ final class WP_Customize_Manager {
 	 * Retrieve the template root of the previewed theme.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return string Theme root.
 	 */
@@ -1945,6 +1962,7 @@ final class WP_Customize_Manager {
 	 * Retrieve the stylesheet root of the previewed theme.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return string Theme root.
 	 */
@@ -1956,6 +1974,7 @@ final class WP_Customize_Manager {
 	 * Filters the current theme and return the name of the previewed theme.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param $current_theme {@internal Parameter is not used}
 	 * @return string Theme name.
@@ -2067,6 +2086,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @since 4.7.0 The semantics of this method have changed to update a changeset, optionally to also change the status and other attributes.
+	 * @access public
 	 */
 	public function save() {
 		if ( ! is_user_logged_in() ) {
@@ -2778,6 +2798,7 @@ final class WP_Customize_Manager {
 	 * Refresh nonces for the current preview.
 	 *
 	 * @since 4.2.0
+	 * @access public
 	 */
 	public function refresh_nonces() {
 		if ( ! $this->is_preview() ) {
@@ -2795,8 +2816,25 @@ final class WP_Customize_Manager {
 	 * @access public
 	 *
 	 * @param WP_Customize_Setting|string $id   Customize Setting object, or ID.
-	 * @param array                       $args Setting arguments; passed to WP_Customize_Setting
-	 *                                          constructor.
+	 * @param array                       $args {
+	 *  Optional. Array of properties for the new WP_Customize_Setting. Default empty array.
+	 *
+	 *  @type string       $type                  Type of the setting. Default 'theme_mod'.
+	 *                                            Default 160.
+	 *  @type string       $capability            Capability required for the setting. Default 'edit_theme_options'
+	 *  @type string|array $theme_supports        Theme features required to support the panel. Default is none.
+	 *  @type string       $default               Default value for the setting. Default is empty string.
+	 *  @type string       $transport             Options for rendering the live preview of changes in Theme Customizer.
+	 *                                            Using 'refresh' makes the change visible by reloading the whole preview.
+	 *                                            Using 'postMessage' allows a custom JavaScript to handle live changes.
+	 *                                            @link https://developer.wordpress.org/themes/customize-api
+	 *                                            Default is 'refresh'
+	 *  @type callable     $validate_callback     Server-side validation callback for the setting's value.
+	 *  @type callable     $sanitize_callback     Callback to filter a Customize setting value in un-slashed form.
+	 *  @type callable     $sanitize_js_callback  Callback to convert a Customize PHP setting value to a value that is
+	 *                                            JSON serializable.
+	 *  @type bool         $dirty                 Whether or not the setting is initially dirty when created.
+	 * }
 	 * @return WP_Customize_Setting             The instance of the setting that was added.
 	 */
 	public function add_setting( $id, $args = array() ) {
@@ -2884,6 +2922,7 @@ final class WP_Customize_Manager {
 	 * Retrieve a customize setting.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id Customize Setting ID.
 	 * @return WP_Customize_Setting|void The setting, if set.
@@ -2898,6 +2937,7 @@ final class WP_Customize_Manager {
 	 * Remove a customize setting.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id Customize Setting ID.
 	 */
@@ -2913,8 +2953,17 @@ final class WP_Customize_Manager {
 	 * @access public
 	 *
 	 * @param WP_Customize_Panel|string $id   Customize Panel object, or Panel ID.
-	 * @param array                     $args Optional. Panel arguments. Default empty array.
-	 *
+	 * @param array                     $args {
+	 *  Optional. Array of properties for the new Panel object. Default empty array.
+	 *  @type int          $priority              Priority of the panel, defining the display order of panels and sections.
+	 *                                            Default 160.
+	 *  @type string       $capability            Capability required for the panel. Default `edit_theme_options`
+	 *  @type string|array $theme_supports        Theme features required to support the panel.
+	 *  @type string       $title                 Title of the panel to show in UI.
+	 *  @type string       $description           Description to show in the UI.
+	 *  @type string       $type                  Type of the panel.
+	 *  @type callable     $active_callback       Active callback.
+	 * }
 	 * @return WP_Customize_Panel             The instance of the panel that was added.
 	 */
 	public function add_panel( $id, $args = array() ) {
@@ -3002,8 +3051,19 @@ final class WP_Customize_Manager {
 	 * @access public
 	 *
 	 * @param WP_Customize_Section|string $id   Customize Section object, or Section ID.
-	 * @param array                       $args Section arguments.
-	 *
+	 * @param array                     $args {
+	 *  Optional. Array of properties for the new Panel object. Default empty array.
+	 *  @type int          $priority              Priority of the panel, defining the display order of panels and sections.
+	 *                                            Default 160.
+	 *  @type string       $panel                 Priority of the panel, defining the display order of panels and sections.
+	 *  @type string       $capability            Capability required for the panel. Default 'edit_theme_options'
+	 *  @type string|array $theme_supports        Theme features required to support the panel.
+	 *  @type string       $title                 Title of the panel to show in UI.
+	 *  @type string       $description           Description to show in the UI.
+	 *  @type string       $type                  Type of the panel.
+	 *  @type callable     $active_callback       Active callback.
+	 *  @type bool         $description_hidden    Hide the description behind a help icon, instead of . Default false.
+	 * }
 	 * @return WP_Customize_Section             The instance of the section that was added.
 	 */
 	public function add_section( $id, $args = array() ) {
@@ -3021,6 +3081,7 @@ final class WP_Customize_Manager {
 	 * Retrieve a customize section.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id Section ID.
 	 * @return WP_Customize_Section|void The section, if set.
@@ -3034,6 +3095,7 @@ final class WP_Customize_Manager {
 	 * Remove a customize section.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id Section ID.
 	 */
@@ -3078,8 +3140,26 @@ final class WP_Customize_Manager {
 	 * @access public
 	 *
 	 * @param WP_Customize_Control|string $id   Customize Control object, or ID.
-	 * @param array                       $args Control arguments; passed to WP_Customize_Control
-	 *                                          constructor.
+	 * @param array                       $args {
+	 *  Optional. Array of properties for the new Control object. Default empty array.
+	 *
+	 *  @type array        $settings              All settings tied to the control. If undefined, defaults to `$setting`.
+	 *                                            IDs in the array correspond to the ID of a registered `WP_Customize_Setting`.
+	 *  @type string       $setting               The primary setting for the control (if there is one). Default is 'default'.
+	 *  @type string       $capability            Capability required to use this control. Normally derived from `$settings`.
+	 *  @type int          $priority              Order priority to load the control. Default 10.
+	 *  @type string       $section               The section this control belongs to. Default empty.
+	 *  @type string       $label                 Label for the control. Default empty.
+	 *  @type string       $description           Description for the control. Default empty.
+	 *  @type array        $choices               List of choices for 'radio' or 'select' type controls, where values
+	 *                                            are the keys, and labels are the values. Default empty array.
+	 *  @type array        $input_attrs           List of custom input attributes for control output, where attribute
+	 *                                            names are the keys and values are the values. Default empty array.
+	 *  @type bool         $allow_addition        Show UI for adding new content, currently only used for the
+	 *                                            dropdown-pages control. Default false.
+	 *  @type string       $type                  The type of the control. Default 'text'.
+	 *  @type callback     $active_callback       Active callback.
+	 * }
 	 * @return WP_Customize_Control             The instance of the control that was added.
 	 */
 	public function add_control( $id, $args = array() ) {
@@ -3097,6 +3177,7 @@ final class WP_Customize_Manager {
 	 * Retrieve a customize control.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id ID of the control.
 	 * @return WP_Customize_Control|void The control object, if set.
@@ -3110,6 +3191,7 @@ final class WP_Customize_Manager {
 	 * Remove a customize control.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $id ID of the control.
 	 */
@@ -3161,6 +3243,7 @@ final class WP_Customize_Manager {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.7.0 Use wp_list_sort()
+	 * @access protected
 	 *
 	 * @param WP_Customize_Panel|WP_Customize_Section|WP_Customize_Control $a Object A.
 	 * @param WP_Customize_Panel|WP_Customize_Section|WP_Customize_Control $b Object B.
@@ -3184,6 +3267,7 @@ final class WP_Customize_Manager {
 	 * and sort by priority.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function prepare_controls() {
 
@@ -3265,6 +3349,7 @@ final class WP_Customize_Manager {
 	 * Enqueue scripts for customize controls.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function enqueue_control_scripts() {
 		foreach ( $this->controls as $control ) {
@@ -3478,6 +3563,8 @@ final class WP_Customize_Manager {
 	 * Get nonces for the Customizer.
 	 *
 	 * @since 4.5.0
+	 * @access public
+	 *
 	 * @return array Nonces.
 	 */
 	public function get_nonces() {
@@ -3504,6 +3591,7 @@ final class WP_Customize_Manager {
 	 * Print JavaScript settings for parent window.
 	 *
 	 * @since 4.4.0
+	 * @access public
 	 */
 	public function customize_pane_settings() {
 
@@ -3618,8 +3706,8 @@ final class WP_Customize_Manager {
 	/**
 	 * Returns a list of devices to allow previewing.
 	 *
-	 * @access public
 	 * @since 4.5.0
+	 * @access public
 	 *
 	 * @return array List of devices with labels and default setting.
 	 */
@@ -3655,6 +3743,7 @@ final class WP_Customize_Manager {
 	 * Register some default controls.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 */
 	public function register_controls() {
 
@@ -4170,8 +4259,8 @@ final class WP_Customize_Manager {
 	 *
 	 * Used as active callback for static front page section and controls.
 	 *
-	 * @access private
 	 * @since 4.7.0
+	 * @access public
 	 *
 	 * @returns bool Whether there are published (or to be published) pages.
 	 */
@@ -4208,6 +4297,7 @@ final class WP_Customize_Manager {
 	 * Returns default text color if hex color is empty.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string $color
 	 * @return mixed
@@ -4227,7 +4317,7 @@ final class WP_Customize_Manager {
 	 * Callback for validating a background setting value.
 	 *
 	 * @since 4.7.0
-	 * @access private
+	 * @access public
 	 *
 	 * @param string $value Repeat value.
 	 * @param WP_Customize_Setting $setting Setting.
@@ -4270,6 +4360,7 @@ final class WP_Customize_Manager {
 	 * Export header video settings to facilitate selective refresh.
 	 *
 	 * @since 4.7.0
+	 * @access public
 	 *
 	 * @param array $response Response.
 	 * @param WP_Customize_Selective_Refresh $selective_refresh Selective refresh component.
@@ -4290,6 +4381,7 @@ final class WP_Customize_Manager {
 	 * Ensures that the selected video is less than 8MB and provides an error message.
 	 *
 	 * @since 4.7.0
+	 * @access public
 	 *
 	 * @param WP_Error $validity
 	 * @param mixed $value
@@ -4322,6 +4414,7 @@ final class WP_Customize_Manager {
 	 * Ensures that the provided URL is supported.
 	 *
 	 * @since 4.7.0
+	 * @access public
 	 *
 	 * @param WP_Error $validity
 	 * @param mixed $value
@@ -4341,6 +4434,7 @@ final class WP_Customize_Manager {
 	 * Callback for sanitizing the external_header_video value.
 	 *
 	 * @since 4.7.1
+	 * @access public
 	 *
 	 * @param string $value URL.
 	 * @return string Sanitized URL.
@@ -4361,7 +4455,7 @@ final class WP_Customize_Manager {
 	 * @see WP_Customize_Manager::register_controls()
 	 *
 	 * @since 4.5.0
-	 * @access private
+	 * @access public
 	 *
 	 * @return string Custom logo.
 	 */
diff --git src/wp-includes/class-wp-customize-setting.php src/wp-includes/class-wp-customize-setting.php
index 83a5b76d61..2e062db111 100644
--- src/wp-includes/class-wp-customize-setting.php
+++ src/wp-includes/class-wp-customize-setting.php
@@ -18,6 +18,9 @@
  */
 class WP_Customize_Setting {
 	/**
+	 * Customizer bootstrap instance.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var WP_Customize_Manager
 	 */
@@ -26,12 +29,16 @@ class WP_Customize_Setting {
 	/**
 	 * Unique string identifier for the setting.
 	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
 	public $id;
 
 	/**
+	 * Type of customize settings.
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
@@ -40,27 +47,69 @@ class WP_Customize_Setting {
 	/**
 	 * Capability required to edit this setting.
 	 *
-	 * @var string
+	 * @since 3.4.0
+	 * @access public
+	 * @var string|array
 	 */
 	public $capability = 'edit_theme_options';
 
 	/**
 	 * Feature a theme is required to support to enable this setting.
 	 *
+	 * @since 3.4.0
+	 * @access public
+	 * @var string
+	 */
+	public $theme_supports = '';
+
+	/**
+	 * The default value for the setting.
+	 *
+	 * @since 3.4.0
+	 * @access public
+	 * @var string
+	 */
+	public $default = '';
+
+	/**
+	 * Options for rendering the live preview of changes in Theme Customizer.
+	 *
+	 * Set this value to 'postMessage' to enable a custom Javascript handler to render changes to this setting
+	 * as opposed to reloading the whole page.
+	 *
+	 * @link https://developer.wordpress.org/themes/customize-api
+	 *
+	 * @since 3.4.0
 	 * @access public
 	 * @var string
 	 */
-	public $theme_supports  = '';
-	public $default         = '';
-	public $transport       = 'refresh';
+	public $transport = 'refresh';
+
+	/**
+	 * Server-side validation callback for the setting's value.
+	 *
+	 * @since 4.6.0
+	 * @access public
+	 * @var callable
+	 */
+	public $validate_callback = '';
+
+	/**
+	 * Callback to filter a Customize setting value in un-slashed form.
+	 *
+	 * @since 3.4.0
+	 * @access public
+	 * @var callable
+	 */
+	public $sanitize_callback = '';
 
 	/**
-	 * Server-side sanitization callback for the setting's value.
+	 * Callback to convert a Customize PHP setting value to a value that is JSON serializable.
 	 *
-	 * @var callback
+	 * @since 3.4.0
+	 * @access public
+	 * @var string
 	 */
-	public $validate_callback    = '';
-	public $sanitize_callback    = '';
 	public $sanitize_js_callback = '';
 
 	/**
@@ -78,6 +127,7 @@ class WP_Customize_Setting {
 	public $dirty = false;
 
 	/**
+	 * @access protected
 	 * @var array
 	 */
 	protected $id_data = array();
@@ -95,9 +145,9 @@ class WP_Customize_Setting {
 	 * Cache of multidimensional values to improve performance.
 	 *
 	 * @since 4.4.0
+	 * @static
 	 * @access protected
 	 * @var array
-	 * @static
 	 */
 	protected static $aggregated_multidimensionals = array();
 
@@ -116,6 +166,7 @@ class WP_Customize_Setting {
 	 * Any supplied $args override class property defaults.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param WP_Customize_Manager $manager
 	 * @param string               $id      An specific ID of the setting. Can be a
@@ -252,6 +303,7 @@ class WP_Customize_Setting {
 	 *
 	 * @see WP_Customize_Setting::preview()
 	 * @since 4.1.1
+	 * @access protected
 	 * @var mixed
 	 */
 	protected $_original_value;
@@ -379,7 +431,8 @@ class WP_Customize_Setting {
 	 * is called for this setting.
 	 *
 	 * @since 4.4.0
-	 * @access private
+	 * @access public
+	 *
 	 * @see WP_Customize_Manager::set_post_value()
 	 * @see WP_Customize_Setting::_multidimensional_preview_filter()
 	 */
@@ -395,6 +448,7 @@ class WP_Customize_Setting {
 	 * the original value.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param mixed $original Old value.
 	 * @return mixed New or old value.
@@ -426,7 +480,7 @@ class WP_Customize_Setting {
 	 * the first setting previewed will be used to apply the values for the others.
 	 *
 	 * @since 4.4.0
-	 * @access private
+	 * @access public
 	 *
 	 * @see WP_Customize_Setting::$aggregated_multidimensionals
 	 * @param mixed $original Original root value.
@@ -468,7 +522,6 @@ class WP_Customize_Setting {
 	 * the value of the setting.
 	 *
 	 * @since 3.4.0
-	 *
 	 * @access public
 	 *
 	 * @return false|void False if cap check fails or value isn't set or is invalid.
@@ -503,6 +556,7 @@ class WP_Customize_Setting {
 	 * During a save request prior to save, post_value() provides the new value while value() does not.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param mixed $default A default value which is used as a fallback. Default is null.
 	 * @return mixed The default value on failure, otherwise the sanitized and validated value.
@@ -515,6 +569,7 @@ class WP_Customize_Setting {
 	 * Sanitize an input.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @param string|array $value    The value to sanitize.
 	 * @return string|array|null|WP_Error Sanitized value, or `null`/`WP_Error` if invalid.
@@ -633,6 +688,7 @@ class WP_Customize_Setting {
 	 * Save the value of the setting, using the related API.
 	 *
 	 * @since 3.4.0
+	 * @access protected
 	 *
 	 * @param mixed $value The value to update.
 	 * @return bool The result of saving the value.
@@ -671,6 +727,7 @@ class WP_Customize_Setting {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.4.0 Deprecated in favor of update() method.
+	 * @access protected
 	 */
 	protected function _update_theme_mod() {
 		_deprecated_function( __METHOD__, '4.4.0', __CLASS__ . '::update()' );
@@ -681,6 +738,7 @@ class WP_Customize_Setting {
 	 *
 	 * @since 3.4.0
 	 * @deprecated 4.4.0 Deprecated in favor of update() method.
+	 * @access protected
 	 */
 	protected function _update_option() {
 		_deprecated_function( __METHOD__, '4.4.0', __CLASS__ . '::update()' );
@@ -690,6 +748,7 @@ class WP_Customize_Setting {
 	 * Fetch the value of the setting.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return mixed The value.
 	 */
@@ -743,6 +802,7 @@ class WP_Customize_Setting {
 	 * Sanitize the setting's value for use in JavaScript.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return mixed The requested escaped value.
 	 */
@@ -787,6 +847,7 @@ class WP_Customize_Setting {
 	 * Validate user capabilities whether the theme supports the setting.
 	 *
 	 * @since 3.4.0
+	 * @access public
 	 *
 	 * @return bool False if theme doesn't support the setting or user can't change setting, otherwise true.
 	 */
@@ -804,6 +865,7 @@ class WP_Customize_Setting {
 	 * Multidimensional helper function.
 	 *
 	 * @since 3.4.0
+	 * @access protected
 	 *
 	 * @param $root
 	 * @param $keys
@@ -854,6 +916,7 @@ class WP_Customize_Setting {
 	 * Will attempt to replace a specific value in a multidimensional array.
 	 *
 	 * @since 3.4.0
+	 * @access protected
 	 *
 	 * @param $root
 	 * @param $keys
@@ -878,6 +941,7 @@ class WP_Customize_Setting {
 	 * Will attempt to fetch a specific value from a multidimensional array.
 	 *
 	 * @since 3.4.0
+	 * @access protected
 	 *
 	 * @param $root
 	 * @param $keys
@@ -896,6 +960,7 @@ class WP_Customize_Setting {
 	 * Will attempt to check if a specific value in a multidimensional array is set.
 	 *
 	 * @since 3.4.0
+	 * @access protected
 	 *
 	 * @param $root
 	 * @param $keys
@@ -907,17 +972,27 @@ class WP_Customize_Setting {
 	}
 }
 
-/** WP_Customize_Filter_Setting class */
+/**
+ * WP_Customize_Filter_Setting class.
+ */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-filter-setting.php' );
 
-/** WP_Customize_Header_Image_Setting class */
+/**
+ * WP_Customize_Header_Image_Setting class.
+ */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-header-image-setting.php' );
 
-/** WP_Customize_Background_Image_Setting class */
+/**
+ * WP_Customize_Background_Image_Setting class.
+ */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-image-setting.php' );
 
-/** WP_Customize_Nav_Menu_Item_Setting class */
+/**
+ * WP_Customize_Nav_Menu_Item_Setting class.
+ */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-item-setting.php' );
 
-/** WP_Customize_Nav_Menu_Setting class */
+/**
+ * WP_Customize_Nav_Menu_Setting class.
+ */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-setting.php' );
diff --git src/wp-includes/customize/class-wp-customize-selective-refresh.php src/wp-includes/customize/class-wp-customize-selective-refresh.php
index 6c04a73698..db0c04fa7b 100644
--- src/wp-includes/customize/class-wp-customize-selective-refresh.php
+++ src/wp-includes/customize/class-wp-customize-selective-refresh.php
@@ -91,7 +91,27 @@ final class WP_Customize_Selective_Refresh {
 	 * @access public
 	 *
 	 * @param WP_Customize_Partial|string $id   Customize Partial object, or Panel ID.
-	 * @param array                       $args Optional. Partial arguments. Default empty array.
+	 * @param array                       $args {
+	 *  Optional. Array of properties for the new Partials object. Default empty array.
+	 *
+	 *  @type string   $type                  Type of the partial to be created.
+	 *  @type string   $selector              The jQuery selector to find the container element for the partial.
+	 *  @type array    $settings              IDs for settings tied to the partial.
+	 *  @type string   $primary_setting       The ID for the setting that this partial is primarily responsible for
+	 *                                        rendering. If not supplied, it will default to the ID of the first setting.
+	 *  @type string   $capability            Capability required to edit this partial.
+	 *                                        Normally this is empty and the capability is derived from the capabilities
+	 *                                        of the associated `$settings`.
+	 *  @type callable $render_callback       Render callback.
+	 *                                        Callback is called with one argument, the instance of WP_Customize_Partial.
+	 *                                        The callback can either echo the partial or return the partial as a string,
+	 *                                        or return false if error.
+	 *  @type bool     $container_inclusive   Whether the container element is included in the partial, or if only
+	 *                                        the contents are rendered.
+	 *  @type bool     $fallback_refresh      Whether to refresh the entire preview in case a partial cannot be refreshed.
+	 *                                        A partial render is considered a failure if the render_callback returns
+	 *                                        false.
+	 * }
 	 * @return WP_Customize_Partial             The instance of the panel that was added.
 	 */
 	public function add_partial( $id, $args = array() ) {
