document BufferedIOBase.raw and TextIOBase.buffer
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index 5866113..71d3f67 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -359,9 +359,15 @@
    implementation, but wrap one like :class:`BufferedWriter` and
    :class:`BufferedReader`.
 
-   :class:`BufferedIOBase` provides or overrides these methods in addition to
+   :class:`BufferedIOBase` provides or overrides these members in addition to
    those from :class:`IOBase`:
 
+   .. attribute:: raw
+
+      The underlying raw stream (a :class:`RawIOBase` instance) that
+      :class:`BufferedIOBase` deals with.  This is not part of the
+      :class:`BufferedIOBase` API and may not exist on some implementations.
+
    .. method:: detach()
 
       Separate the underlying raw stream from the buffer and return it.
@@ -607,6 +613,12 @@
       A string, a tuple of strings, or ``None``, indicating the newlines
       translated so far.
 
+   .. attribute:: buffer
+
+      The underlying binary buffer (a :class:`BufferedIOBase` instance) that
+      :class:`TextIOBase` deals with.  This is not part of the
+      :class:`TextIOBase` API and may not exist on some implementations.
+
    .. method:: detach()
 
       Separate the underlying buffer from the :class:`TextIOBase` and return it.