Firstly, 802.11 allows all devices a "fair" way of accessing the channel through CSMA/CA. The device with the stronger signal (say device 'A') will first sense the channel and check whether any other device (such as the AP or the other device 'B') is transmitting. Only then will it transmit.
Now let us say that device B's transmissions are so weak (or it is hidden from device A) that device A cannot sense it. In that case, there will be a packet collision and retransmission is invoked (something like ARQ). This is a classic case of poor performance in 802.11. To deal with this, some form of rate/power control is usually built into the AP, so that all devices transmit signals in a way that the overall performance is improved.
Another way to solve this is using RTS/CTS signalling. However most implementations don't use this approach because it has significant overhead.